将值添加到JavaScript数组

3
如果想要追加到这种类型的数组中:
array = ["one","two","three"];

所以它变成了:
array = ["one","two","three, "four"];

用途:

array.push("four");

但是你如何在这里添加内容:
object = {element1: one, element2: two, array: ["one","two","three"]};

所以它变成了:
object = {element1: one, element2: two, array: ["one","two","three,"four"]};
3个回答

7
你仍然使用push()方法,但是要在对象的array属性上调用它:

var obj = {
  element1: 1,
  element2: 2,
  array: ["one", "two", "three"]
};

obj.array.push('four');

console.log(obj);


假设我们使用的是 jQuery.obj 而不是 var obj? - haz
jQuery.obj 是什么意思? - Rory McCrossan
jQuery.obj = { element1: 1, ... } jQuery.obj = { element1: 1, ... } - haz
然后使用jQuery.obj.array.push('four');。然而,您真的真的不应该在jQuery命名空间中污染自己的变量。 - Rory McCrossan
我做了。然后出现了错误:引用错误:找不到变量数组。 - haz
那么你没有正确定义数组。不过,问题无关紧要,因为你本来就不应该在那里存储变量。 - Rory McCrossan

3
您可以像这样就地更新对象:
let obj = {element1: 'one', element2: 'two', array: ["one","two","three"]};
obj.array.push('four');

如果你想使用新的ES6特性创建带有扩展数组的对象的副本,你也可以按照以下方式操作:
let obj = {element1: 'one', element2: 'two', array: ["one","two","three"]};
let newObject = Object.assign({}, obj, { array: [...obj.array, 'four'] });

使用第二个示例,您可以保持原始对象不变,并创建一个具有更新值的新副本。

1
在您的情况下,值one, two必须是字符串,否则它们将被视为变量,并且您也可以使用push为对象使用object.array.push('four');

var object = {
  element1: "one",
  element2: "two",
  array: ["one", "two", "three"]
};
object.array.push('four');
console.log(object);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接