情境:
我需要来自数组中每个对象的相同属性。
示例: fiddle
var texts = [];
var arr = [{text:"first"}, {text:"second"}]
arr.forEach(item => {
texts.push(item.text);
});
console.log(text); // >(2) [ "first", "second" ]
问题:
这个概念是否有“速记”版本?
例如。 arr.childPropFilter("text")
答案 0 :(得分:2)
使用map()返回基于迭代原始
的新数组var texts = arr.map(o => o.text)
答案 1 :(得分:1)
你的意思是这样的吗?
console.log(arr.map(t => t.text));
答案 2 :(得分:0)
您可以像这样使用 Array.prototype.map()
method :
var texts = arr.map(function(obj){
return obj.text;
});
<强>演示:强>
var arr = [{text:"first"}, {text:"second"}]
var texts = arr.map(function(obj){
return obj.text;
});
console.log(texts);
答案 3 :(得分:0)
Yes.try with Array#map()
.Its返回新数组
var arr = [{text:"first"}, {text:"second"}]
var texts =arr.map(item => item.text);
console.log(texts);
答案 4 :(得分:0)
这是一个常见的需求,库通常提供这样的功能:
Ramda - pluck
:
pluck('text', arr)
下划线 - pluck
:
pluck(arr, 'text')
lodash - map
:
map(arr, 'text')
请注意,lodash也有pluck
,但chose to remove it支持map
的替代用法。所以这是一个你可能决定保留的常见抽象。最常见的名称是pluck
,写起来很容易:
const pluck = (prop) => (list) => list.map(obj => obj[prop]);
pluck('test')(arr);