【发布时间】:2019-09-21 16:58:17
【问题描述】:
我有一个 JSON 对象(字符串化)getResponse["taskData"],例如:
[
{title: "123456", startOn: "30-4-2019-18-0", endOn: "30-4-2019-19-0"},
{title: "123456", startOn: "30-4-2019-18-0", endOn: "30-4-2019-19-0"},
{title: "qwerty", startOn: "1-5-2019-16-30", endOn: "1-5-2019-19-0"},
{title: "asdfgh", startOn: "1-5-2019-16-30", endOn: "1-5-2019-19-0"},
{title: "zxcvbn", startOn: "2-5-2019-9-0", endOn: "2-5-2019-11-0"}
]
我需要知道在多维对象的不同级别上有多少个 startOn 值重复。
例如,得到30-4-2019-18-0 (2), 1-5-2019-16-30 (2) 对我很有用。或者,获取相应重复项的索引整数也会有所帮助。
我一直在尝试使用这个来实现这样的功能:
var countSameStart = {};
getResponse["taskData"].forEach(function (x) {
countSameStart[x] = ( countSameStart[x] || 0 ) + 1;
});
但是,后来我发现这个函数无法访问对象的不同级别并比较这些值。而且,我也想不通。
我感谢任何建设性的答案作为代码或建议。
【问题讨论】:
-
“对象的不同层次”是什么意思?
-
您展示的是一个对象数组,其值都是字符串。如果你在 forEach 中写
console.log(x),你可以看到你正在处理什么。 -
@NinaScholz 我试图解释比较 getResponse["taskData"][i][1] 并构造一个包含所述结果的数组。
-
如果您将字符串化 (JSON) 对象(而不是控制台副本)添加到问题中,它会更容易。它没有所有的行或属性,但我们需要了解您所说的对象。
标签: javascript arrays json multidimensional-array duplicates