我有一个像下面这样的对象数组,是否有可能在不循环的情况下获取name属性的值。
var objArray = [ { name: 'APPLE', type: 'FRUIT' },
{ name: 'ONION', type: 'VEGETABLE' } ]
将名称获取为CSV(APPLE,ONION)的值而无需循环访问它是否可行?从根本上讲,一个帮助程序函数将这个对象数组作为输入并输出给定属性的CSV,在这种情况下,它是名称。
看一下map()和/或reduce()
var objArray = [
{ name: 'APPLE', type: 'FRUIT' },
{ name: 'ONION', type: 'VEGETABLE' }
];
var csvString = objArray
.map(function(item){ return item.name; })
.join();
// ===================
// es6 version of the above
// ===================
// var csvString = objArray.map((item) => item.name).join();
// ===================
console.log(csvString)
如果您控制数据格式,并且有很多项目要处理,那么可以使用更有效的方法来构造事物。如果这未能通过性能测试,那么您可能会考虑将数据存储为
var obj = {
"APPLE": { name: 'APPLE', type: 'FRUIT' },
"ONION": { name: 'ONION', type: 'VEGETABLE' }
};
然后测试以下各项的性能:
Object.keys(obj).join()
将键设置为名称后,将由您决定是否使内部名称变得多余,或者如果仅存在两个数据元素,则是否根本需要内部对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句