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

时间:2017-10-19 04:02:35

标签: javascript arrays object

我正在尝试创建一个返回带有键值对的新对象的函数。我从数组的第一个和最后一个元素中获取键和值。我可以让函数返回构成键值对的元素,但是只要我用花括号包装数组元素来通过函数返回一个对象,它就不起作用。有什么问题?

// 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));

2 个答案:

答案 0 :(得分:4)

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

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

这使用computed properties

另一种选择是:

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