我是Node.js的新手,我想从一个看起来像这样的对象访问一组特定的信息:
userData: [
{
value: false,
id: 1,
title: 'Hello World',
date: '17 February 2018 - 06:27:51 PM',
status: 'Processing'
},
{
value: false,
id: 2,
title: 'Hello People',
date: '17 February 2018 - 06:27:48 PM',
status: 'Active'
},
{
value: false,
id: 3,
title: 'Hello Canary',
date: '17 February 2018 - 06:27:44 PM',
status: 'Expired'
}
]
现在我想返回一个只包含“title”的数组
示例:['Hello World', 'Hello people', 'Hello Canary']
我没有运气就试过Object.values(obj)
和Object.keys(yourObject).map(key => yourObject[key])
。谁能帮帮我吗?
更新:我正在使用ES6,并希望优化我的代码以提高性能
let titles = userData.map(x => x.title);
使用带有阵列的Array.prototype.map时。它返回一个数组,该数组由传递它的函数的返回值组成,在数组的每个元素上调用。因此,上面的示例在包含.title
属性的对象数组上使用时,将返回一个新数组,其中包含原始数组中每个对象的标题。
这是一个工作片段
var userData = [{
value: false,
id: 1,
title: 'Hello World',
date: '17 February 2018 - 06:27:51 PM',
status: 'Processing'
},
{
value: false,
id: 2,
title: 'Hello People',
date: '17 February 2018 - 06:27:48 PM',
status: 'Active'
},
{
value: false,
id: 3,
title: 'Hello Canary',
date: '17 February 2018 - 06:27:44 PM',
status: 'Expired'
}
]
// Solution to your problem
let titles = userData.map(function(obj) {
return obj.title;
});
console.log(titles);
说明:
Try this:
var userData = [
{
value: false,
id: 1,
title: 'Hello World',
date: '17 February 2018 - 06:27:51 PM',
status: 'Processing'
},
{
value: false,
id: 2,
title: 'Hello People',
date: '17 February 2018 - 06:27:48 PM',
status: 'Active'
},
{
value: false,
id: 3,
title: 'Hello Canary',
date: '17 February 2018 - 06:27:44 PM',
status: 'Expired'
}
];
var newArray=[];
userData.forEach(function(entry) {
newArray.push(entry.title);
});
alert(newArray);