這裏是輸入:在Lodash.js/Underscore.js中,如何爲每個元素添加索引?
[{animal: "cat"}, {animal:"dog}}
和輸出是:
[{animal: "cat", idx: 1}, {animal: "dog", idx: 2}]
有誰有關於如何做到這一點的Lodash/Underscore.js想法?
這裏是輸入:在Lodash.js/Underscore.js中,如何爲每個元素添加索引?
[{animal: "cat"}, {animal:"dog}}
和輸出是:
[{animal: "cat", idx: 1}, {animal: "dog", idx: 2}]
有誰有關於如何做到這一點的Lodash/Underscore.js想法?
在下劃線:
你可以使用任何.MAP或。每次到目標陣列中的每個元素重複你希望添加索引。然後你可以使用_.extend添加「idx」道具。
工作實施例:橫跨元件
var data = [{animal: "cat"}, {animal:"dog"}]
_.map(data, function(e, i) {
return _.extend(e, {idx: i + 1});
});
@torazaburo你是正確的,因爲OP想要在1開始他的索引。更新了我的答案。 –
當使用'map()'時,最好不要改變集合中的每個項目。我會將它改爲'return _.extend({idx:i + 1},e)'。 –
var data = [{animal: "cat"}, {animal:"dog"}, {animal:"er"}];
var data2 = _.select(data,function(val, key){
return {val, idx : key};
});
我沒有得到這一點。我猜'select'是'filter'的一個老名字,但是你的過濾函數總是返回一個真值,所以所有的項目都會被選中,並且你會以你開始的東西結束。 –
循環,添加索引彼此不同的。
_.each(data, function(elt, i) { elt.idx = i + 1; })
var newAnimals = _.map(animals, function(animal, index){
animal.idx = index + 1;
return animal;
})
'_.map(輸入,函數(X,I){返回_.extend({IDX:ⅰ}中,x);})'? – Bergi