如何使用给定的键和值创建对象?

问题描述:

我想创建一个函数,返回一个新的对象与键值对。我从数组的第一个和最后一个元素中获得键和值。我可以得到函数来返回组成键 - 值对的元素,但只要我将大括号中的数组元素包装成通过函数返回对象,它就不起作用。问题是什么?如何使用给定的键和值创建对象?

// Create an array 
var names = ["Apples", "Oranges", "Yummy", "Candy", "Plop"]; 

// Return an object with a key–value pair from the first and last element of an array 
function firstLast(array) { 
    var obj = { 
    array[0] + ": " + "'" + array[array.length - 1] + "'"; 
    }; 
    return obj; 
} 

console.log(firstLast(names)); 

这是无效的语法。你需要的是:

var obj = { 
    [array[0]]: array[array.length - 1] 
}; 

这使用computed properties

另一种方法是:

var obj = {}; 
obj[array[0]] = array[array.length - 1]; 
+0

我今天了解到某事时,'{[VAR]:1}'一部分。非常酷。 – wscourge

+0

我明白了!谢谢。我完全不知道这个语法。 –

您可以使用方括号表示法来分配的价值,但我的初始后含有相同的答案@ Xufox的替代品。所以我想我会介绍一种不同的方法,它使用传入函数的参数并通过移动和弹出该数组构建返回的对象。做同样的工作只是一个不同的方式。

var names = ["Apples", "Oranges", "Yummy", "Candy", "Plop"]; 
 

 
function firstLast(array) { 
 
    return {[arguments[0].shift()]: arguments[0].pop()}; 
 
} 
 

 
console.log(firstLast(names));