我有一个像下面这样的对象数组,是否可以获取name属性的值而无需循环遍历它。
var objArray = [ { name: 'APPLE', type: 'FRUIT' },
{ name: 'ONION', type: 'VEGETABLE' } ]
将名称的值作为CSV(APPLE,ONION)获取而不进行循环是可行的。从根本上说是一个辅助函数,它将此对象数组作为输入并输出给定属性的CSV,在这种情况下,它是名称。
答案 0 :(得分:2)
查看 map()和/或 reduce()
var obj = {
"APPLE": { name: 'APPLE', type: 'FRUIT' },
"ONION": { name: 'ONION', type: 'VEGETABLE' }
};
如果您控制数据格式,并且有“lot”项要处理,那么有更有效的方法来构建事物。如果这不能通过性能测试,那么您可能会将数据存储为
Object.keys(obj).join()
然后测试以下的表现:
{{1}}
一旦将键设置为名称,就可以确定是否使内部名称成为冗余,或者如果只有两个数据元素则根本需要内部对象。
答案 1 :(得分:0)
您可以创建自己的函数来执行此操作,但必须遍历数组,例如:
function namesCSV(arr){
var toReturn = "";
for(var i = 0; i < arr.length; i++){
toReturn += arr[i].name;
if(i != array.length-1){
toReturn += ",";
}
}
return toReturn;
}
答案 2 :(得分:0)
您可以使用内置的forEach函数来获取值:
var objArray = [ { name: 'APPLE', type: 'FRUIT' },
{ name: 'ONION', type: 'VEGETABLE' } ]
objArray.forEach(function(obj) {
// work with obj
console.log(obj.name);
});
&#13;