@yagyar001

Почему не срабатывает условие?

Всем привет. Учу Js. Пишу функцию, которая принимает число и возвращает массив с подмассивами его цифр. То есть например число 123456, функция должна вернуть массив такого вида [[1, 2, 3], [4, 5, 6]]. Но условие не срабатывает и возвращается пустой массив. Что я сделал не так?
function luckyTisket (num) {
	let str = String(num);
	let arrNums = [];
	// Если число четное...
	if (Number.isInteger(str.length % 2)) {
		let halfLength = str.length / 2; // присвоил halfLength значение (значение половины длины строки)
		for (var i = 0; i < num.length; i++) {
			if (i < halfLength) {
				arrNums[0].push(str[i]); // Заполняю первый подмассив первой половиной числа
			} else {
				arrNums[1].push(str[i]); // Заполняю второй подмассив второй половиной числа
			}
		}
	}
	return arrNums;
}

console.log(luckyTisket(222666));
  • Вопрос задан
  • 93 просмотра
Решения вопроса 2
hzzzzl
@hzzzzl
for (var i = 0; i < num.length; i++) {
не num.length, а str.length

function luckyTisket (num) {
  let str = String(num);
  let arrNums = [[], []];  // чтобы можно было arrNums[0].push и arrNums[1].push
  // Если число четное...
  if (Number.isInteger(str.length % 2)) {
    let halfLength = str.length / 2; // присвоил halfLength значение (значение половины длины строки)
    for (var i = 0; i < str.length; i++) {
      if (i < halfLength) {
        arrNums[0].push(str[i]); // Заполняю первый подмассив первой половиной числа
      } else {
        arrNums[1].push(str[i]); // Заполняю второй подмассив второй половиной числа
      }
    }
  }
  return arrNums;
}

console.log(luckyTisket(222666));


UPD

function getLucky(n = '') {
  const str = String(n)
  const mid = Math.ceil(str.length / 2)

  return [
    str.slice(0, mid).split(''), 
    str.slice(mid).split('')
  ]
}
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
Number.isInteger не нужен: str.length % 2 === 0 хватит.
arrNums[0].push и arrNums[1].push пушат в неопределенные массивы. Попробуйте прописать let arrNums = [[], []];
Ну, и вместо num.length пишите str.length.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы