@NewTypes
На себя

Как вытащить второе значение из каждого массива (многомерный)?

Хочу получить второе значение каждого массива находящемся в свою очередь в многомерном массиве (что по сути не делает погоды).

В Python это очень просто:

mArr = [['a','b'],['c','d'],['e','f']]

    for d in a:
        print d[1]

Если я напишу это на javascript, то значения будут undefined. Что в принципе меня не удивило.

mArr = [['a','b'],['c','d'],['e','f']]
    
    for(d in a){
        console.log(d[1])
    }
  • Вопрос задан
  • 3343 просмотра
Решения вопроса 3
@Zoberg
Сейчас уже почти во всех распространенных браузерах поддерживается Array.prototype.forEach. Так что вместо обхода в цикле можно написать такую штуку:

mArr.forEach(function(d){
  console.log(d[1]);
});
Ответ написан
@gro
Ну, если чуть подправить, то всё нормально:
var mArr = [['a','b'],['c','d'],['e','f']]

for(var d in mArr){
console.log(mArr[d][1])
}

Если проводить аналогии с питоном, то это скорее словарь, а не список.

Но for-in по порядковому массиву в JS чреват всякой фигнёй, поэтому лучше, как выше указали обычный for.
Ответ написан
Комментировать
@Nc_Soft
mArr = [['a','b'],['c','d'],['e','f']]

for (var i = 0; i < mArr.length; i++) {
console.log(mArr[i][1]);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mlnkv
@mlnkv
JavaScript Developer
for-in вполне нормально работает, если не используются никакие кустарные сторонние библиотеки ("недобросовестные" разработчики добавляют в прототип Array.prototype свои методы, которые потом вылетают в переборе for-in)
и в js при переборе for (var i in array) в переменную i передается индекс а не само значение, поэтому, как писалось выше
var arr= [['a','b'],['c','d'],['e','f']]

for (var i in arr) {    
    console.log(arr[i][1])
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы