【发布时间】:2021-06-24 18:21:58
【问题描述】:
我正在使用下面的代码来获取数组中重复对象的计数。
我正在通过一个包含组的表进行查询,而且它很复杂。我将组及其复杂性传递给一个对象。我有重复的条目,例如
[
{group: A, complexity: Simple},
{group: A, complexity: Complex},
{group: A, complexity: Simple},
{group: B, complexity: Simple},
{group: A, complexity: Medium}
]
我需要如下所示的重复次数
[
{group: A, complexity: Simple}: 2,
{group: A, complexity: Complex}: 1,
{group: B, complexity: Simple}: 1,
{group: C, complexity: Medium}: 1
]
var data = {};
var app = [];
for(let i=0; i<=2; i++){
var fName = "Ram";
var lName = "Krishna";
data = { "ID": fName, "Status": lName };
app.push(data);
}
var call = JSON.stringify(duplicate(app));
console.log("call: " + call);
function duplicate(app)
{
var counts = {};
for(var i =0; i < app.length; i++)
{
var ab = JSON.stringify(app[i]);
if (counts[ab])
{
counts[ab] += 1;
}else{
counts[ab] = 1;
}
}
return counts;
}
我得到以下输出
call: {"{\"ID\":\"Ram\",\"Status\":\"Krishna\"}":3}
我期待什么
call: {"{"ID":"Ram","Status":"Krishna"}":3}
谁能帮我解决这个问题?
【问题讨论】:
-
为什么要字符串化?如果不进行字符串化和记录会发生什么?
-
如果我不使用字符串化。我得到 [object Object]
-
这里有很多不好的做法不要将对象字符串化以使其成为关键,您需要清楚自己想要什么。为什么你想让 object 成为你的 count 对象中的关键。
-
为了帮助您解决问题,我们需要更多信息
-
你的对象每次都会有相同的键吗?
标签: javascript arrays ecmascript-5