2016-08-22 2 views
2
> var lst = ['red', 'blue', 'yellow']; 
> someFunc(lst); 
[('red', 0), ('blue', 1), ('yellow', 2)] 

Есть ли способ сделать это в Javascript/JQuery? Я знаю, что я просто могу сделать цикл for и преобразовать каждый из элемента исходного списка в то, что я хочу, но мне было интересно, есть ли встроенный способ сделать это.Javascript - указатель Каждый элемент в массиве/список

Спасибо!

+1

UM, вы хотите объекты? вложенные массивы? Этот вывод не имеет смысла. – epascarello

+1

Вы имеете в виду 'lst.map (function (v, i) {return {value: v, index: i}})'? – haim770

+0

То, что помещает индекс в каждый элемент, может быть объектами. –

ответ

2

Вы можете использовать Array#map и возвращать для каждого элемента массив со значением и индексом.

var lst = ['red', 'blue', 'yellow'], 
 
    array = lst.map(function (a, i) { return [a, i]; }); 
 

 
console.log(array);

+0

Да! За исключением запятой должна быть точка с запятой, верно? –

+0

какая запятая не работает? –

+3

Нет, Нина объявляет две переменные, ее стенографию для написания 'var lst ...; var array ...; ' – Alex

0

Вы можете использовать функцию map(), которая предоставляет вам как ценность и и индекс каждого элемента в массиве:

lst.map(function(v, i) { return { value: v, index: i }; }); 

См MDN

0

С map в ES6:

var lst = ['red', 'blue', 'yellow']; 
var array = lst.map((item, index) => [item, index]) 
console.log(array); // [ [ 'red', 0 ], [ 'blue', 1 ], [ 'yellow', 2 ] ] 
Смежные вопросы