цикл по массиву массивов

1

Я просто изучаю 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))
} 
  • 0
    Это то, что вы искали?
  • 0
    Спасибо брат. Теперь я понимаю.
Показать ещё 1 комментарий
Теги:
arrays
dictionary

4 ответа

1

Вы можете просто использовать метод .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]}') )
  • 0
    допустим, я просто хочу console.log () второй массив в массивах, как мне это сделать ??
  • 0
    Вы имеете в виду 1 , 2 и 3 ?
Показать ещё 1 комментарий
1

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

arrOfArr.forEach(([key, value]) => console.log(key, value));
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню