배열에 객체를 추가하는 방법
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
나 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...
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();
대안 적 대답은 이것입니다.
다음과 같이 배열하면 : var contacts = [bob, mary];
이 배열에 다른 배열을 넣으려면 다음과 같이하십시오.
함수 생성자 선언
function add (firstName,lastName,email,phoneNumber) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.phoneNumber = phoneNumber;
}
함수에서 객체를 만듭니다.
var add1 = new add("Alba","Fas","Des@gmail.com","[098] 654365364");
객체를 배열에 추가하십시오.
contacts[contacts.length] = add1;
/* 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.push(new Data("Jhon", "Doe"));
aData.push(new Data("Anna", "Smith"));
aData.push(new Data("Black", "Pearl"));
/* convert array of object into string json */
var jsonString = JSON.stringify(aData);
document.write(jsonString);
/* loop arrray */
for (var x in aData) {
alert(aData[x].fullname());
}
a=[];
a.push(['b','c','d','e','f']);
자동 목록을 사용하여 객체 생성자를 만드는 방법 :
var list = [];
function saveToArray(x) {
list.push(x);
};
function newObject () {
saveToArray(this);
};
코드를 그대로 사용하면 범위 문제가 발생합니다. 그것들 사이에 사용할 계획이라면 (또는 호출하는 경우 매개 변수로 전달) 함수 외부에서 선언해야합니다.
var a = new Array();
var b = new Object();
function first() {
a.push(b);
// Alternatively, a[a.length] = b
// both methods work fine
}
function second() {
var c = a[0];
}
// code
first();
// more code
second();
// even more code
var list1 = [{id : 1, 이름 : "High-Tech", 배지 : 3, 어린이 : [{id : 1, 이름 : "PC", 배지 : 1}, {id : 2, 이름 : "SmartPhone" , 배지 : 2}],}];
var object = {이름 : "카테고리"}
var result = list.concat (객체);
console.log (결과)
다음과 같이이 자바 스크립트 프로토 타입을 사용할 수 있습니다.
Array.prototype.push.apply(array1, array2,array3);
=> array1은 나머지를 포함합니다
참고 URL : https://stackoverflow.com/questions/6254050/how-to-add-an-object-to-an-array
'IT' 카테고리의 다른 글
매일 오전 2시 30 분에 크론 작업 실행 (0) | 2020.03.22 |
---|---|
부트 스트랩 4 네비게이션 바 항목을 오른쪽에 정렬 (0) | 2020.03.22 |
슬라이드 업 / 다운 애니메이션으로보기 표시 및 숨기기 (0) | 2020.03.22 |
SVN이 계속 충돌합니까? (0) | 2020.03.22 |
phpunit으로 단일 테스트 방법을 실행하는 방법은 무엇입니까? (0) | 2020.03.22 |