如何将对象添加到数组(在 javascript 或 jquery 中)?例如,这段代码有什么问题?
function() {
var a = new array();
var b = new object();
a[0] = b;
}
我想用这段代码在function1的数组中保存许多对象,并调用function2来使用数组中的对象。
- 如何将对象保存在数组中?
- 如何将对象放入数组并将其保存到变量中?
如何将对象添加到数组(在 javascript 或 jquery 中)?例如,这段代码有什么问题?
function() {
var a = new array();
var b = new object();
a[0] = b;
}
我想用这段代码在function1的数组中保存许多对象,并调用function2来使用数组中的对象。
使用 Array.push() 将任何内容放入数组中。
var a=[], b={};
a.push(b);
// a[0] === b;
关于数组的额外信息
一次添加多个项目
var x = ['a'];
x.push('b', 'c');
// x = ['a', 'b', 'c']
将项目添加到数组的开头
var x = ['c', 'd'];
x.unshift('a', 'b');
// x = ['a', 'b', 'c', 'd']
将一个数组的内容添加到另一个
var x = ['a', 'b', 'c'];
var y = ['d', 'e', 'f'];
x.push.apply(x, y);
// x = ['a', 'b', 'c', 'd', 'e', 'f']
// y = ['d', 'e', 'f'] (remains unchanged)
从两个数组的内容创建一个新数组
var x = ['a', 'b', 'c'];
var y = ['d', 'e', 'f'];
var z = x.concat(y);
// x = ['a', 'b', 'c'] (remains unchanged)
// y = ['d', 'e', 'f'] (remains unchanged)
// z = ['a', 'b', 'c', 'd', 'e', 'f']
var years = [];
for (i= 2015;i<=2030;i=i+1){
years.push({operator : i})
}
这里的数组年份具有类似的值
years[0]={operator:2015}
years[1]={operator:2016}
它继续这样。
首先,没有object
or array
。有Object
和Array
。其次,你可以这样做:
a = new Array();
b = new Object();
a[0] = b;
现在a
将是一个b
唯一元素的数组。
使用ES6
符号,您可以执行以下操作:
对于附加,您可以像这样使用扩展运算符:
var arr1 = [1,2,3]
var obj = 4
var newData = [...arr1, obj] // [1,2,3,4]
console.log(newData);
new array()
andnew object()
会抛出一个,ReferenceError
因为它们不存在。new Array()
由于其容易出错的行为,最好避免。= [val1, val2, val_n]
. 对于对象,使用= {}
.concat
代替push
。concat
返回一个新数组,原数组不变。push
改变应该避免的调用数组,特别是如果数组是全局定义的。应用这些要点并回答你的两个问题,你可以定义一个这样的函数:
function appendObjTo(thatArray, newObj) {
const frozenObj = Object.freeze(newObj);
return Object.freeze(thatArray.concat(frozenObj));
}
用法:
// Given
const myArray = ["A", "B"];
// "save it to a variable"
const newArray = appendObjTo(myArray, {hello: "world!"});
// returns: ["A", "B", {hello: "world!"}]. myArray did not change.