在JavaScript对象中查找重复键

时间:2014-06-30 15:37:54

标签: javascript object

我有一个文件,其唯一目的是在对象中提供大量的键/值对。它看起来像这样:

var myobj = {
   some_key: 'some value',
   another_key: 'another value',
   // thousands of other key/value pairs...
   some_key: 'accidental duplicate key with different value'
};

现在当我引用该文件并引用some_key时,我得到了意外的重复值,因为JavaScript将存储最后声明的密钥。

我想编写一个单元测试来检查此对象是否有意外的重复键。问题是JavaScript已经删除了重复项。我如何通过单元测试完成此检查?

(一个答案是使用字符串解析手动解析文件以找到重复项。这很脆弱,我想远离这个。)

1 个答案:

答案 0 :(得分:7)

"use strict";添加到文件顶部。用法示例:

(function() {
  "use strict";
  // Throws a syntax error
  var a = {
    b: 5,
    b: 6
  };
})();

编辑:由于ES6计算的属性值,此答案不再严格更新。如果需要,可以将对象编写为JSON对象(如果可能的话)并将其放入http://www.jslint.com/,这将检查重复的密钥。另见:"use strict"; now allows duplicated properties?