цикл по массиву массивов - PullRequest
0 голосов
/ 10 июня 2018

Я только изучаю программирование на Javascript, и у меня возникают проблемы с циклическим перебором массива.Мне нужна закодированная процедура для этого.

Я хочу распечатать каждый отдельный массив в массиве.Я пытался использовать Map , но после разрыва типа он возвращает ключ и значение первого массива.Мне просто нужен код, чтобы помочь мне распечатать каждый ключ и значение каждого массива в отдельности.

var arrOfArr = [
    ['one', 1],
    ['two', 2],
    ['three', 3]
]

var newmap = new Map(arrOfArr)
for (const [key, values] of newmap.entries()) {
    newmap.forEach((values, key )  => console.log(key, values))
} 

Ответы [ 4 ]

0 голосов
/ 10 июня 2018

arrOfArr - это Array, который содержит 3 Arrays.

Массивы JavaScript с нулевым индексом: первый элемент массива имеет индекс 0, ипоследний элемент имеет индекс, равный значению свойства длины массива минус 1. Использование недопустимого номера индекса возвращает неопределенное значение.

Полезная ссылка: Массив MDN

Пример:

var arrOfArr = [['one', 1],['two', 2],['three', 3]]

// First array INDEX 0
console.log("First: ", arrOfArr[0]);

// Second array INDEX 1
console.log("Second: ", arrOfArr[1]);

// Third array INDEX 2
console.log("Third: ", arrOfArr[2]);
0 голосов
/ 10 июня 2018

С помощью задания ES6 Destructuring вы можете выполнить его одной строкой:

arrOfArr.forEach(([key, value]) => console.log(key, value));
0 голосов
/ 10 июня 2018

Во-первых, взгляните на приведенную ниже попытку на узле REPL.

Ссылка: Использование итератора в Map () для перебора пар ключей и значений

> var arrOfArr = [
...     ['one', 1],
...     ['two', 2],
...     ['three', 3]
... ]
undefined
>
> var newMap = new Map(arrOfArr)
undefined
> newMap
Map { 'one' => 1, 'two' => 2, 'three' => 3 }
>
> var iteratorObj = newMap[Symbol.iterator]();
undefined
>
> // Printing keys and values
undefined
> for (let item of iteratorObj) {
... console.log(item[0], item[1])
... }
one 1
two 2
three 3
undefined
>

Теперь попробуйте онлайн.

var arrOfArr = [
    ['one', 1],
    ['two', 2],
    ['three', 3]
]

var newMap = new Map(arrOfArr)

var iteratorObj = newMap[Symbol.iterator]();

// Printing keys and values
for (let item of iteratorObj) {
	console.log(item[0], item[1])
}
0 голосов
/ 10 июня 2018

Вы можете просто использовать метод .forEach

Метод forEach() выполняет предоставленную функцию один раз для каждого элемента массива.

Таким образом, вы можете перебрать arrOfArr и заполнить obj парами ключ / значение:

Для каждого элемента массива в arrOfArr вы можете выбрать ключ (первый элемент в подмассиве)с e[0] и его значением (вторым элементом в подмассиве) с e[1].

Затем введите obj[e[0]] = e[1], чтобы добавить новую пару ключ / значение в obj


Вот код:

var arrOfArr = [ ['one', 1], ['two', 2], ['three', 3] ];

const obj = {}
arrOfArr.forEach(e => {
  obj[e[0]] = e[1]
})

console.log(obj)

Или, если вы хотите распечатать их по отдельности, вам нужно obj.Поэтому используйте:

var arrOfArr = [ ['one', 1], ['two', 2], ['three', 3] ];

arrOfArr.forEach( e => console.log(`${e[0]} => ${e[1]}`) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...