Dictonary JavaScript的数组数组

时间:2017-10-01 15:17:17

标签: javascript javascript-objects

我有一个数组数组,想要返回一个这样的字典。

function retFunc(array) {
var dict ={};
for(var i=0; i<=array.length-1;i++){
dict={[array[i][0]] : array[i][1]}
}
return dict
}  

retFunc([['a','b'],'['c','d']])

output
{ c : 'd'}

return dict仅返回最后一个键/值对。我想返回所有键/值对,但做dict + = {[array [i] [0]]:array [i] [1]}之类的东西不起作用。

9 个答案:

答案 0 :(得分:1)

你在做什么

dict={[array[i][0]] : array[i][1]}

这意味着您将一个新对象分配给变量dict。没有附加! 如果你想附加到你的dict对象。写下这个:

dict[array[i][0]] = array[i][1];

答案 1 :(得分:1)

使用Object.assign.map()spread syntax和参数解构非常简单:

&#13;
&#13;
function retFunc(arr) {
  return Object.assign({}, ...arr.map(([k, v]) => ({[k]: v})));
}

console.log(retFunc([['a','b'],['c','d']]));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你必须这样做

&#13;
&#13;
function retFunc(array) {
var dict ={};
for(var i=0; i<=array.length-1;i++){
dict[array[i][0]] = array[i][1];
}
return dict
}  

console.log(retFunc([['a','b'],['c','d']]))
&#13;
&#13;
&#13;

答案 3 :(得分:0)

而是使用dict[array[i][0]] = array[i][1];映射所有键值。

&#13;
&#13;
function retFunc(array) {
var dict ={};
for(var i=0; i<=array.length-1;i++){
dict[array[i][0]] = array[i][1];
}
return dict
}  

var x = retFunc([['a','b'],['c','d']]);

console.log(x);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

使用dict[array[i][0]] = array[i][1]作业将key:value对添加到您的词典Object

从数组中删除拼写错误。

function retFunc(array) {
  var dict = {};
  for (var i = 0; i <= array.length - 1; i++) {
    dict[array[i][0]] = array[i][1]
  }
  return dict
}

console.log(retFunc([
  ['a', 'b'],
  ['c', 'd']
]))

答案 5 :(得分:0)

使用object key = value assignment,

尝试这样做

&#13;
&#13;
function retFunc(array) {
  var dict = {};
  for (var i = 0; i <= array.length - 1; i++) {
    dict[array[i][0]] = array[i][1];
  }
  return dict;
}

console.log(retFunc([
  ['a', 'b'],
  ['c', 'd']
]));
&#13;
&#13;
&#13;

答案 6 :(得分:0)

您可以使用直接分配到所需的密钥。

dict[array[i][0]] = array[i][1];

function retFunc(array) {
    var dict = {};
    for (var i = 0; i <= array.length - 1; i++) {
          dict[array[i][0]] = array[i][1];
    }
    return dict;
}

console.log(retFunc([['a', 'b'], ['c', 'd']]));

更具功能性的方法可包括

function retFunc(array) {
    return Object.assign(...array.map(([k, v]) => ({ [k]: v })));
}

console.log(retFunc([['a', 'b'], ['c', 'd']]));

答案 7 :(得分:0)

这是Array.reduce功能的完美候选者。下面是一个注释示例,显示Array.reduce如何适用于您的示例。您还可以在MDN

找到文档

const input = [
  ['a', 'b'],
  ['d', 'd'],
  ['e', 'f'],
];

// adds key/value from `arr` to dict.
function arrayToDict(dict, arr){
  dict = dict || {};
  // take an array of two items and turn it into a key value pair.
  let [key, value] = arr;
  // if you don't like es6 syntax, then this is equivalent
  /*
  var key   = arr[0];
  var value = arr[1];
  */
  
  dict[key] = value;
  return dict;
}

// this function can be used to add any one of our pairs to a dictionary

console.log('Example1: ', arrayToDict({}, ['a', 'b']));

// now we can use the Array Reduce function to add each pair to the dictionary.

let output = input.reduce(arrayToDict, {});
console.log('Output:', output);

答案 8 :(得分:0)

Object.fromEntries()方法将键值对列表转换为对象。 link

Object.fromEntries(iterable);

var array = [
   ['a','b'],
   ['c','d']
];
var dict = Object.fromEntries(array);
console.log(dict);

// {a: "b", c: "d"}