我在这里嵌套了一堆物体。我觉得这有一个答案,我只是不知道如何说出发生了什么。
所以,我从REST返回(类似于450多个对象)中得到了这个巨大的对象数组,这些对象是这样加载的:
<div id="container">
<div class="header">
<h2>Profile</h2>
</div>
<figure>
<figcaption>User: Kent</figcaption>
<img src="avatar.png" />
<div>
Profile completed: 60%
<meter value="60" min="0" max="100">2 out of 10</meter>
</div>
</figure>
</div>
我做这件事,首先,我创建了一个对象数组,其中只包含嵌套对象属性中的唯一字符串,以及数量的字符串出现在数据集中的次数。
对于每个唯一字符串,我现在需要在原始数据集中创建一个对象数组,其中results.prop3.prop0与折叠数组中的字符串匹配。那令人困惑吗?
由此:
姓名:&#34; Joe&#34;,
地点:州{
州:&#34;纽约&#34;,
},
活着:假
}
对此:
纽约(120)
乔 - 死了
我已经使用underscore.js了解了这一点:
results[0] = {
prop0: "String",
prop1: "String",
prop2: bool,
prop3: Object {
prop0: "String"
}
prop4: "String"
}
但我在某个地方显然是个白痴,因为那只是在我的折叠阵列中为每个东西返回一个空数组。
已折叠的示例
[{&#34; New York&#34;,120},{&#34; Georgia&#34;,79},{&#34; Another Place&#34;,15}]。
我基本上想要构建一个数据表,在每个地方下面,我加载Place中的状态字符串一直在嵌套对象底部的对象。
对于_____,我要尝试一下。
答案 0 :(得分:0)
以下是基于_.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";
});
结果:仅具有纽约州的对象数组
链接到jsbin演示