IT

배열에 객체를 추가하는 방법

lottoking 2020. 3. 22. 10:52
반응형

배열에 객체를 추가하는 방법


javascript 또는 jquery에서 배열에 객체를 어떻게 추가 할 수 있습니까? 예를 들어,이 코드의 문제점은 무엇입니까?

function(){
    var a = new array();
    var b = new object();
    a[0]=b;
}

이 코드를 사용하여 function1의 배열에 많은 객체를 저장하고 function2를 호출하여 배열의 객체를 사용하고 싶습니다.

  1. 배열에 객체를 어떻게 저장할 수 있습니까?
  2. 객체를 배열에 넣고 변수에 저장하려면 어떻게해야합니까?

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}

이렇게 계속됩니다.


우선, 어떤이없는 objectarray. 있다 ObjectArray. 둘째, 당신 수 있습니다 :

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분명히 오타입니다. 그러나 모두 objectarray필요 대문자.

당신이 짧은 손을 사용할 수 있습니다 new Arraynew 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

반응형