JS按数组索引返回对象

时间:2019-06-14 02:57:07

标签: javascript json

我正在尝试将数组转换为对象(由第一个元素作为键)。

foo = [1,2]

function convert_foo(foo) {
    return { foo[0]: foo[1] };
}

以下无效的Javascript:Uncaught SyntaxError: Unexpected token [

我也尝试过:

function convert_foo(foo) {
    return ({ foo[0]: foo[1] });
}

编辑:

这是可能的,但是我想知道是否有一种方法可以将其返回一行。

function convert_foo(foo) {
    var obj = {}
    obj[foo[0]] = foo[1];
    return obj;
}

2 个答案:

答案 0 :(得分:4)

对于动态键(在ECMAScript 2015中为动态键(又名计算的属性名称)),必须将键放在方括号中:

function convert_foo(foo) {
    return { [foo[0]]: foo[1] };
}

console.log(convert_foo([1, 2]));

答案 1 :(得分:1)

在即将到来的Object.fromEntries()(在某些浏览器中为already supported)中,您还可以执行以下操作:

function convert_foo(foo)
{
    return Object.fromEntries([foo]);
}

console.log(convert_foo([1, 2]));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}