我正在尝试创建一个返回带有键值对的新对象的函数。我从数组的第一个和最后一个元素中获取键和值。我可以让函数返回构成键值对的元素,但是只要我用花括号包装数组元素来通过函数返回一个对象,它就不起作用。有什么问题?
// 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));
答案 0 :(得分:4)
这是无效的语法。你需要的是:
var obj = {
[array[0]]: array[array.length - 1]
};
另一种选择是:
var obj = {};
obj[array[0]] = array[array.length - 1];
答案 1 :(得分:1)
您可以使用方括号表示法来指定值,但我的初始帖子包含与@ Xufox的替代方案相同的答案。所以我想我会提出一种不同的方法,它使用传递给函数的参数,并从该数组中移位和弹出构建返回的对象。和另一个做同样工作的人一样。
var names = ["Apples", "Oranges", "Yummy", "Candy", "Plop"];
function firstLast(array) {
return {[arguments[0].shift()]: arguments[0].pop()};
}
console.log(firstLast(names));