如何检查如果用户在键值对对象数组中提供重复键

时间:2016-01-23 09:11:19

标签: javascript

此函数接受键值对对象的数组,并返回键值的字典。

例如

的输入
[{ key: 'prop1', value: 'value1' }, { key: 'prop2', value: 'value2' }]

会导致

{ prop1: 'value1', prop2: 'value2' };

如果用户提供重复的密钥,则会抛出错误消息'You cannot provide duplicate keys'

function createDictionary(input) {

}

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

function createDictionary(input) {
  var res = {};

  input.forEach(function(obj) {
    if (!res.hasOwnProperty(obj.key)) {
      res[obj.key] = obj.value;
    } else {
      throw new Error('You cannot provide duplicate keys.');
    }
   });

   return res;
 }

答案 1 :(得分:0)

var a=[{key:'prop1',value:'value1'},{key:'prop2',value:'value2'}]
var dict={}
for (var i=0; i<a.length; i++){
        if (!(a[i]['key'] in dict)){
                dict[a[i]['key']]=a[i]['value']
        }
        else{
                throw new Error("Key already exists.")
        }
}
console.log(dict)

试试这个逻辑。你也可以使用foreach循环。