nas*_*ser 286 javascript arrays object
如何将对象添加到数组(在javascript或jquery中)?例如,这段代码有什么问题?
function(){
var a = new array();
var b = new object();
a[0]=b;
}
Run Code Online (Sandbox Code Playgroud)
我想使用此代码在function1数组中保存许多对象,并调用function2以使用数组中的对象.
Joh*_*ler 595
使用Array.push()将任何内容放入数组中.
var a=[], b={};
a.push(b);
// a[0] === b;
Run Code Online (Sandbox Code Playgroud)
关于数组的额外信息
一次添加多个项目
var x = ['a'];
x.push('b', 'c');
// x = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
将项添加到数组的开头
var x = ['c', 'd'];
x.unshift('a', 'b');
// x = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
将一个数组的内容添加到另一个数组
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)
Run Code Online (Sandbox Code Playgroud)
从两个数组的内容创建一个新数组
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']
Run Code Online (Sandbox Code Playgroud)
Gab*_*aru 54
首先,没有object或array.有Object和Array.其次,你可以这样做:
a = new Array();
b = new Object();
a[0] = b;
Run Code Online (Sandbox Code Playgroud)
现在a将是一个b作为唯一元素的数组.
san*_*osh 54
var years = [];
for (i= 2015;i<=2030;i=i+1)
{
years.push({operator : i})
}
Run Code Online (Sandbox Code Playgroud)
这里数组年的价值就像
years[0]={operator:2015}
years[1]={operator:2016}
Run Code Online (Sandbox Code Playgroud)
它继续这样.
Aay*_*shi 23
使用ES6表示法,您可以执行以下操作:
对于追加,你可以像这样使用spread运算符:
var arr1 = [1,2,3]
var obj = 4
var newData = [...arr1, obj] // [1,2,3,4]
console.log(newData);Run Code Online (Sandbox Code Playgroud)
Bog*_*ann 19
new array()和new 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));
}
Run Code Online (Sandbox Code Playgroud)
用法:
// 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.
Run Code Online (Sandbox Code Playgroud)
ant*_*ove 16
/* array literal */
var aData = [];
/* object constructur */
function Person(firstname, lastname) {
this.firstname = firstname;
this.lastname = lastname;
this.fullname = function() {
return (this.firstname + " " + this.lastname);
};
}
/* store object into array */
aData[aData.length] = new Person("Java", "Script"); // aData[0]
aData.push(new Person("Jhon", "Doe"));
aData.push(new Person("Anna", "Smith"));
aData.push(new Person("Black", "Pearl"));
aData[aData.length] = new Person("stack", "overflow"); // aData[4]
/* loop array */
for (var i in aData) {
alert(aData[i].fullname());
}
/* convert array of object into string json */
var jsonString = JSON.stringify(aData);
document.write(jsonString);Run Code Online (Sandbox Code Playgroud)
小智 12
您可以像这样使用 Spread 运算符 (...):
let arr = [{num: 1, char: "a"}, {num: 2, char: "b"}];
arr = [...arr,{num: 3, char: "c"}];
//...arr --> spread operator
console.log(arr);Run Code Online (Sandbox Code Playgroud)
通过推送,您甚至可以将多个对象添加到数组中
let myArray = [];
myArray.push(
{name:"James", dataType:TYPES.VarChar, Value: body.Name},
{name:"Boo", dataType:TYPES.VarChar, Value: body.Name},
{name:"Alina", dataType:TYPES.VarChar, Value: body.Name}
);
Run Code Online (Sandbox Code Playgroud)
扩大Gabi Purcaru的答案,包括对2号的回答.
a = new Array();
b = new Object();
a[0] = b;
var c = a[0]; // c is now the object we inserted into a...
Run Code Online (Sandbox Code Playgroud)
obejct显然是一个错字.但两者object并array需要大写字母.
你可以使用短手new Array,new Object这些是[]和{}
您可以使用将数据推送到数组中.push.这将它添加到数组的末尾.或者您可以设置索引以包含数据.
function saveToArray() {
var o = {};
o.foo = 42;
var arr = [];
arr.push(o);
return arr;
}
function other() {
var arr = saveToArray();
alert(arr[0]);
}
other();
Run Code Online (Sandbox Code Playgroud)
小智 5
关于替代答案是这样的。
如果有这样的数组: var contacts = [bob, mary];
并且您想要在该数组中放置另一个数组,可以通过以下方式实现:
声明函数构造函数
function add (firstName,lastName,email,phoneNumber) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.phoneNumber = phoneNumber;
}
Run Code Online (Sandbox Code Playgroud)
通过函数创建对象:
var add1 = new add("Alba","Fas","Des@gmail.com","[098] 654365364");
Run Code Online (Sandbox Code Playgroud)
并将对象添加到数组中:
contacts[contacts.length] = add1;
Run Code Online (Sandbox Code Playgroud)