javascript 또는 jquery에서 배열에 객체를 어떻게 추가 할 수 있습니까? 예를 들어,이 코드의 문제점은 무엇입니까?
function(){
var a = new array();
var b = new object();
a[0]=b;
}
이 코드를 사용하여 function1의 배열에 많은 객체를 저장하고 array2의 객체를 사용하기 위해 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
나 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);
답변
- JavaScript는 대소 문자를 구분 합니다. 존재하지 않기 때문에 전화하고을
new array()
(new object()
를) 던질 것ReferenceError
입니다. - 오류가 발생하기 쉬운 행동
new Array()
으로 인해 피하는 것이 좋습니다 .
대신을 사용하여 새 배열을 할당하십시오 . 개체의 경우= [val1, val2, val_n]
= {}
. - John의 답변에 표시된 것처럼 배열을 확장하는 방법에는 여러 가지가 있지만 가장 안전한 방법은
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.
답변
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...
답변
/* array literal */
var aData = [];
/* object constructur */
function Data(firstname, lastname) {
this.firstname = firstname;
this.lastname = lastname;
this.fullname = function() {
return (this.firstname + " " + this.lastname);
};
}
/* store object into array */
aData[aData.length] = new Data("Java", "Script"); // aData[0]
aData.push(new Data("Jhon", "Doe"));
aData.push(new Data("Anna", "Smith"));
aData.push(new Data("Black", "Pearl"));
aData[aData.length] = new Data("stack", "overflow"); // aData[4]
/* loop arrray */
for (var x in aData) {
alert(aData[x].fullname());
}
/* convert array of object into string json */
var jsonString = JSON.stringify(aData);
document.write(jsonString);