bir numara verilir işlev bir aralıkta sayısını döndürür

oy
3

Ben 1 ile 12 arasında bir değere döndürür, bir numara verilir fonksiyon yazmak çalışıyorum.

giriş 1 ise, giriş 12 ise, yani, örneğin, çıkış, 1 olan giriş 13 ise, çıkış ise, çıkış 2, giriş 14, çıkış ise, 1, 12, giriş 24, çıkış 12'dir.

Ben şimdiye kadar bu denedim:

function toRange(number) {
  if (number > 12) { 
    return number % 12
  }

  return number
}

Ben conditionals yapmadan bu çözebilir bir yol olup olmadığını Ama merak ediyorum. Ben dönüşünü (sayı + 12)% 12 yapıyor düşündüm ama sayı 12 ise o 0 döneceğini çünkü, işe yaramaz.

Oluştur 08/11/2018 saat 11:23
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
2

Bir sıfır tabanlı değeri için bir ayarlama kullanmak ve sonunda adustment ekleyebilir.

function toRange(number) {
    return (number - 1) % 12 + 1;
}

var i;

for (i = 1; i <= 24; i++) console.log(i, toRange(i));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Cevap 08/11/2018 saat 11:27
kaynak kullanıcı

oy
0

Ayrıca benzeri düşünülebilir - 12'ye numaranın geri kalanını almak ve vaka geri kalanında 12 dönmek 0'dır.

function toRange(number) {
    return number % 12 || 12;
}

for (var i = 1; i <= 24; i++) console.log(i, toRange(i));

Cevap 08/11/2018 saat 12:21
kaynak kullanıcı

oy
0

Böyle belki bir şeyler:

function toRange(number) {
  if (number > 12) { 
    if (number % 12 === 0)
      return number - 12;
    return number % 12
  }
  return number
}
Cevap 08/11/2018 saat 11:28
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more