我有created a fiddle here借助下面的一些答案来回答我的问题。
我有一个对象数组。 a 数组中的单个对象包含:
obj1, obj2, obj3...
其中一个对象的示例是:
{
client_id: "85"
id: 1477
organisation_id: 5
task_project_id: 26
project_name: "Reiciendis adipisci fugiat."
project_description: "Soluta consequatur labore et dolores"
task_description: "Qui sunt at aut."
task_end_time: null
task_start_time: "2016-05-21 09:00:00"
transaction_id: null
}
我想从第一个数组生成一个新的对象数组,其中包含不同的 task_project_id 条目。新数组应包含以下结构的不同对象:
{
task_project_id: 26
project_name: "Reiciendis adipisci fugiat."
}
我尝试过jQuery.grep
、array.filter
、array.map
但无济于事。我似乎也找不到使用“提取不同对象的数组”作为搜索的示例。有人可以给我举个例子吗?谢谢。
最佳答案
array.map
应该可以正常工作:
var b = a.map(function(e) {
return {
task_project_id: e.task_project_id,
project_description: e.project_description
}
});
编辑:通过存储已遇到的“已见过”任务项目 ID 的列表来过滤掉重复项:
var seen = {}; // keys = list of unique task project ids
var b = a.filter(function (e) {
return seen[e.task_project_id] ? false : (seen[e.task_project_id] = true);
});
把它们放在一起:
var newArray = (function (a) {
var seen = {};
return a.filter(function (e) {
return seen[e.task_project_id] ? false : (seen[e.task_project_id] = true);
}).map(function (e) {
return {
task_project_id: e.task_project_id,
project_description: e.project_description
}
});
})(oldArray);
关于jquery - 过滤对象数组以将不同的值放入新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39311267/