繁体   English   中英

数组到字典 JavaScript 的数组

[英]Array of Arrays to Dictonary JavaScript

我有一个数组数组,并希望像这样返回一个字典。

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]} 的事情是行不通的。

你在做

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

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

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

使用Object.assign.map()传播语法和参数解构非常简单:

 function retFunc(arr) { return Object.assign({}, ...arr.map(([k, v]) => ({[k]: v}))); } console.log(retFunc([['a','b'],['c','d']]));

你必须做

 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']]))

而是使用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 } var x = retFunc([['a','b'],['c','d']]); console.log(x);

使用赋值作为dict[array[i][0]] = array[i][1]添加一个key:value对到你的 dict 对象

也从数组中删除错字。

 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'] ]))

尝试使用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'] ]));

您可以使用对所需键的直接分配。

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']]));

这是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);

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

Object.fromEntries(iterable);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM