여러 요소를 배열에 푸시
여러 요소를 하나의 어레이로 푸시하려고 하는데 다음 오류가 나타납니다.
> a = []
[]
> a.push.apply(null, [1,2])
TypeError: Array.prototype.push called on null or undefined
루비랑 비슷한 걸 하려고 하는데apply
뭐랄까*
.
>> a = []
=> []
>> a.push(*[1,2])
=> [1, 2]
다음과 같은 방법으로 여러 요소를 배열에 푸시할 수 있습니다.
var a = [];
a.push(1, 2, 3);
console.log(a);
이제 ECMAScript2015(일명, e.k.a. ES6)에서 스프레드 연산자를 사용하여 한 번에 여러 항목을 추가할 수 있습니다.
var arr = [1];
var newItems = [2, 3];
arr.push(...newItems);
console.log(arr);
호환되는 브라우저는 Kangax의 ES6 호환성 표를 참조하십시오.
오브젝트의 대부분의 기능을 사용하는 경우apply
또는call
,그context
매개 변수는 작업 중인 개체여야 합니다.
이 경우,a.push.apply(a, [1,2])
(또는 더 정확하게 말하면)Array.prototype.push.apply(a, [1,2])
)
다음을 사용할 수 있습니다.
var result = a.concat(b);
여러 아이템을 추가하려면spread
교환입니다.
a = [1,2]
b = [3,4,5,6]
a.push(...b)
출력은 다음과 같습니다.
a = [1,2,3,4,5,6]
다른 방법을 원하시면Array.concat
ECMAScript 2015(일명.k.a)에 수록되어 있습니다.ES6, ES2015)는 어레이를 수정하지 않고 새 어레이를 반환하며 다음과 같이 스프레드 연산자를 사용할 수 있습니다.
var arr = [1];
var newItems = [2, 3];
var newerItems = [4, 5];
var newArr = [...arr, ...newItems, ...newerItems];
console.log(newArr);
이것은, 다음의 서버와는 다른 것에 주의해 주세요.push
로서 메서드push
method는 어레이를 변환/변환합니다.
특정 ES2015 기능이 브라우저에서 작동하는지 확인하려면 Kangax의 호환성 표를 확인하십시오.
또한 브라우저 지원을 기다리지 않고 프로덕션에서 ES2015를 사용하려는 경우 Babel 또는 이와 유사한 트랜스필러를 사용할 수 있습니다.
권장되는 답변은 다음과 같습니다.Array.prototype.push(a, b)
좋은 방법이지만 b가 너무 크면 스택오버플로우 에러가 발생합니다(arg가 너무 많아서).여기서 조심해요.
N개의 어레이를 연결하는 가장 효율적인 방법은 무엇입니까?를 참조하십시오.자세한 것은, 을 참조해 주세요.
더 쉬운 방법은
a = []
a.push(1,2,3)
또 다른 방법은
a = [...a, 4,5,6]
다른 배열을 작성하려면
const b = a.concat(7,8,9)
저도 같은 의문을 가지고 있었습니다.저에게는 더 쉬운 해결책이 있었습니다.
let array = []
array.push(1, 2, 4, "string", new Object())
console.log(array)
// logs [ 1, 2, 4, 'string', {} ]
한 번에 여러 개체를 푸시하는 것은 종종 어떻게 선언하느냐에 따라 달라집니다.array
.
나는 이렇게 했다.
//declaration
productList= [] as any;
지금이다push
기록.
this.productList.push(obj.lenght, obj2.lenght, items);
옵션 1: concat() 사용:새 어레이를 반환할 때 추가 공간이 필요합니다.
let array1=['a','b']
let array2=['c','d']
let array3=['e','f']
let res=array1.concat(array2,array3)
옵션 2: 확산 연산자 사용:추가 공간을 차지하지 않고 동일한 어레이에서 작동합니다.
let array1=['a','b']
let array2=['c','d']
let array3=['e','f']
array1.push(...array2,...array3)
ES6 확산 연산자를 사용하십시오.
let a = [1,2,3];
let b = [4,5,6];
a = [...a,...b];
// [1,2,3,4,5,6]
var a=[];
a.push({
name_a:"abc",
b:[]
});
a.b.push({
name_b:"xyz"
});
언급URL : https://stackoverflow.com/questions/14723848/push-multiple-elements-to-array
'it-source' 카테고리의 다른 글
Python 집합과 목록 (0) | 2023.01.13 |
---|---|
개체 목록에 대한 vuex 저장소를 구성하고 ID를 기반으로 개체 목록에 개별적으로 매핑하는 방법 (0) | 2023.01.13 |
PHP의 숫자 기호를 변경하시겠습니까? (0) | 2023.01.13 |
Quasar의 라우터에 중첩된 자식으로부터의 부모 트리거 메서드(vue) (0) | 2023.01.13 |
브라우저에서 JavaScript의 URL로 이동하는 방법 (0) | 2023.01.13 |