【发布时间】:2022-01-02 23:15:45
【问题描述】:
与我的另一个问题有关,图片是How do I get rid of PROTOTYPE in my new JSON Object from an Array?
我希望能够做到以下几点:
更进一步……
每个现在都相同的 MARKET (name, displayName) 中的每一个都有 1 到“n”个项目。
所以,我想计算有多少项目在其中或重复。
例如:
NAME: "IL" may have 300
NAME: "WA" may have 1000
NAME: "OR" may have 100
and so on.
在这些对象中,有 MARKET 这个词。市场就是上面所说的:IL、WA、CA 等等都是这样的市场:
[
{
ID: 1,
NAME: "SomeName1",
MARKET: "IL",
LOCATION: "6 Miles east"
},
{
ID: 2,
NAME: "SomeName2",
MARKET: "IL",
LOCATION: "36 Miles east"
},
{
ID: 3,
NAME: "SomeName3",
MARKET: "WA",
LOCATION: "3 Miles west"
},
{
ID: 4,
NAME: "SomeName4",
MARKET: "WA",
LOCATION: "33 Miles west"
},
{
ID: 5,
NAME: "SomeName5",
MARKET: "OR",
LOCATION: "23 Miles north"
},
...
]
我想为收到的 MAP 函数添加一个计数作为解决方案:
const newObj = newMarketArray.map(e => ({ name: e, displayName: e }));
这样当值如上图所示时,我可以得到例如 WA、IL 和 OR 的出现次数。
最终的 JSON 应该有一个额外的元素:
displayName: WA,
name: WA,
count: 33
最后,我想对 JSON 对象的值进行排序,这可能非常简单。
更新:有人提出了 MAP 的问题
const newObj = newMarketArray.map(e => ({ name: e, displayName: e }));
是假的。这不是真的。它返回 IMAGE 中的值。所以这肯定不是假的。
我只需要计算实例的数量,比如 CA 出现并像这样放置它:
const newObj = newMarketArray.map(e => ({ name: e, displayName: e, count: somecount }));
仅供参考:newMarketArray 包含 3300 多个对象
【问题讨论】:
标签: javascript json lodash