通过数组中对象中的对象 属性 过滤对象数组
Filtering an array of objects by an object property within an object within the array
我在一个嵌套的对象地狱中,在这里。我觉得这个问题有答案,我只是不太明白如何描述正在发生的事情。
所以,我从 REST return(大约 450 多个对象)中获取了这个巨大的对象数组,它们是这样加载的:
results[0] = {
prop0: "String",
prop1: "String",
prop2: bool,
prop3: Object {
prop0: "String"
}
prop4: "String"
}
我正在做这件事,首先,我创建了一个对象数组,其中仅包含嵌套对象 属性 中的唯一字符串,以及出现的次数计数字符串出现在数据集中。
我现在需要为每个唯一字符串在原始数据集中创建一个对象数组,其中 results.prop3.prop0 与折叠数组中的字符串匹配。够混乱了吗?
来自这里:
姓名:"Joe",
地点:州 {
状态:"New York"、
},
活着:假
}
为此:
纽约 (120)
乔 - 死了
我已经走到这一步了,使用 underscore.js:
for(index in collapsed){
var details = _.where(results,{state: {state: collapsed[index][0]}});
console.log(details);
}
但我在某个地方显然是个白痴,因为那只是 return 为折叠数组中的每个东西创建一个空数组。
折叠样本
[{"New York",120},{"Georgia",79},{"Another Place",15}].
我基本上想构建一个 table 数据,在每个位置下面,我加载 Place 与嵌套对象底部的状态字符串一直匹配的对象。
到jm_____的地步,我去试试。
以下是基于_.reduce()
和_.filter()
的带下划线的数据操作示例
获取包含按状态分组的项目数的折叠数组
var collapsed = _.reduce(response, function(memo, item) {
if ( ! memo[item.Place.state]) {
memo[item.Place.state] = 0;
}
memo[item.Place.state]++;
return memo;
}, {});
结果:以状态为键并计数为值的分组对象。
{
London: 2,
New York: 4
}
按州获取筛选数据
var filtered = _.filter(response, function(item) {
return item.Place.state === "New York";
});
结果:只有纽约州的对象数组
Link 到 jsbin 演示
我在一个嵌套的对象地狱中,在这里。我觉得这个问题有答案,我只是不太明白如何描述正在发生的事情。
所以,我从 REST return(大约 450 多个对象)中获取了这个巨大的对象数组,它们是这样加载的:
results[0] = {
prop0: "String",
prop1: "String",
prop2: bool,
prop3: Object {
prop0: "String"
}
prop4: "String"
}
我正在做这件事,首先,我创建了一个对象数组,其中仅包含嵌套对象 属性 中的唯一字符串,以及出现的次数计数字符串出现在数据集中。
我现在需要为每个唯一字符串在原始数据集中创建一个对象数组,其中 results.prop3.prop0 与折叠数组中的字符串匹配。够混乱了吗?
来自这里:
姓名:"Joe",
地点:州 {
状态:"New York"、
},
活着:假
}
为此:
纽约 (120)
乔 - 死了
我已经走到这一步了,使用 underscore.js:
for(index in collapsed){
var details = _.where(results,{state: {state: collapsed[index][0]}});
console.log(details);
}
但我在某个地方显然是个白痴,因为那只是 return 为折叠数组中的每个东西创建一个空数组。
折叠样本
[{"New York",120},{"Georgia",79},{"Another Place",15}].
我基本上想构建一个 table 数据,在每个位置下面,我加载 Place 与嵌套对象底部的状态字符串一直匹配的对象。
到jm_____的地步,我去试试。
以下是基于_.reduce()
和_.filter()
获取包含按状态分组的项目数的折叠数组
var collapsed = _.reduce(response, function(memo, item) {
if ( ! memo[item.Place.state]) {
memo[item.Place.state] = 0;
}
memo[item.Place.state]++;
return memo;
}, {});
结果:以状态为键并计数为值的分组对象。
{
London: 2,
New York: 4
}
按州获取筛选数据
var filtered = _.filter(response, function(item) {
return item.Place.state === "New York";
});
结果:只有纽约州的对象数组
Link 到 jsbin 演示