将元素添加到数组中的所有对象的智能方法? JS / jquery的/敲除

时间:2015-05-12 02:20:05

标签: javascript jquery knockout.js

例如我有一个这样的数组:

var t = ko.observableArray([
  {"FoodName":"Rice","FoodOften":"2"},
  {"FoodName":"Apple","FoodOften":"3"}
]);   

如何以智能方式向所有这些项目添加静态项目?

[
  {"Student":"1","FoodName":"Rice","FoodOften":"2"},    
  {"Student":"1","FoodName":"Apple","FoodOften":"3"}      
]

我知道我可以循环t().length添加t()[n].Student="1",但只是想知道是否有任何聪明的淘汰方式?

1 个答案:

答案 0 :(得分:1)

回答这个问题的每个变体都将是某种形式的'迭代数组并将值添加到每个对象'。一些:

t.forEach(function(entry) {
    entry.Student = 1;
});

var newT = t.map(function(entry) {
    entry.Student = 1;
    return entry;
});

for (var i = 0; i++; i< t.length) {
    t[i].Student = 1;
}

顺便说一下,至少在Chrome中,jsperf说第一个是这三个中效率最高的。