我有一个数组数组,想要返回一个这样的字典。
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]}之类的东西不起作用。
答案 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和参数解构非常简单:
function retFunc(arr) {
return Object.assign({}, ...arr.map(([k, v]) => ({[k]: v})));
}
console.log(retFunc([['a','b'],['c','d']]));
&#13;
答案 2 :(得分:0)
你必须这样做
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;
答案 3 :(得分: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
}
var x = retFunc([['a','b'],['c','d']]);
console.log(x);
&#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,
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;
答案 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']]));
更具功能性的方法可包括
Object.assign
用于收集对象的部分,
spread syntax ...
用于将数组作为参数
Array#map
获取新数组
destructuring assignment用于获取对象的值而不是使用数组,
computed property names将变量用作键。
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"}