通过如下小脚本我希望是去掉JS array中重复的Object,但每次将元素放进hash的时候,key都变成了 '[object Object]',最终导致没有拿到预期的输出,思路应该没有问题,改怎么解决呢?请大人指点一二,谢谢先!
a = [ { a: 'A' }, { b: 'B' }, { a: 'A' } ];
console.log(a);
var hash = {};
for (var i = 0, len = a.length; i < len; i ++) {
var elem = a[i];
hash[elem] = elem;
}
var noDuplicate = [], j = 0;
for (var item in hash) {
noDuplicate[j++] = hash[item];
}
console.log(hash); // { '[object Object]': { a: 'A' } }
console.log(noDuplicate); // [ { a: 'A' } ]
// expected: [ { a: 'A' }, { b: 'B' } ]
p.s. 为什么要支持markdown格式只能发帖后在编辑中才能选择...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.