Я просто изучаю Javascript-программирование, и у меня возникают проблемы с циклом массива массивов. Мне нужна закодированная процедура для этого.
Я хочу распечатать каждый отдельный массив в массиве. Я пытался использовать карту, но после разрыва типа он возвращает ключ и значение первого массива. Мне просто нужен код, который поможет мне распечатать каждый ключ и значение каждого массива индивидуально.
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))
}
Вы можете просто использовать метод .forEach
Метод
forEach()
выполняет предоставленную функцию один раз для каждого элемента массива.
Таким образом, вы можете arrOfArr
цикл через 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]}') )
1
, 2
и 3
?
С назначением ES6 Destructuring вы можете добиться этого с помощью одной строки:
arrOfArr.forEach(([key, value]) => console.log(key, value));
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]);
Во-первых, посмотрите на попытку Node 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])
}
Map { 'one' => 1, 'two' => 2, 'three' => 3 }
не индексируется как массивы, поэтому трудно напрямую получить доступ к любому из ее элементов. Прочитайте: «Следует отметить, что Карта, которая является картой объекта, особенно словаря словарей, будет отображаться только в порядке вставки объекта - который является случайным, а не упорядоченным». от developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Так что в этом случае будет лучше, если вы будете использовать console.log(arrOfArr[1]);
напечатать второй массив.