JS вопрос об утверждении: замена для 'return' in 'для l oop', чтобы получить все значения из 'для l oop' - PullRequest
0 голосов
/ 16 февраля 2020

Из-за самого возврата numInOrder + " : " + nameInOrder; дает только одно значение, "1: a" на консоли.

Но я хочу

"1: a

2 : b

3: c

4: d

5: e

6: f "

на консоли. log.

Плюс я не хочу consol.log(numInOrder + " : " + nameInOrder); вместо return numInOrder + " : " + nameInOrder;, потому что consol.log(numInOrder + " : " + nameInOrder); print

"1: a

2: b

3: c

4: d

5: e

6: f

undefined "

К запретить печать undefined в конце numInOrder + " : " + nameInOrder;, как я могу улучшить этот код?

list = ['a','b','c','d','e','f'];


function x() {
  for (var i=0; i<list.length; i++){
    var numInOrder = i+1;
    var nameInOrder = list[i];
    
    return numInOrder + " : " + nameInOrder;
  }
}

console.log(x());

1 Ответ

0 голосов
/ 16 февраля 2020

Отобразите в массив строк, которые вы хотите, затем присоедините этот массив к \n и верните его:

list = ['a','b','c','d','e','f'];
const x = () => list
  .map((char, i) => char + ' : ' + (i + 1))
  .join('\n');

console.log(x());

Или, чтобы изменить ваш исходный код, менее кратко, но с тем же логом c:

list = ['a', 'b', 'c', 'd', 'e', 'f'];

function x() {
  const arr = [];
  for (var i = 0; i < list.length; i++) {
    var numInOrder = i + 1;
    var nameInOrder = list[i];

    arr.push(numInOrder + " : " + nameInOrder);
  }
  return arr.join('\n');
}

console.log(x());
...