programing

배열을 JavaScript에서 별도의 변수로 압축 풀기

goodsources 2023. 9. 28. 08:21
반응형

배열을 JavaScript에서 별도의 변수로 압축 풀기

이건 간단한 문제고, 전에도 해본 적이 있어요.어떻게, 정확히 뭐라고 불렸는지 기억이 나지 않을 뿐입니다.

파이썬에서 할 수 있는 일은 다음과 같습니다.

arr = ['one', 'two']
one, two = arr

자바스크립트로 어떻게 해야 합니까?

ES6는 파괴 할당을 허용합니다.

let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'

또는, 초기 예를 고수하기 위해:

var arr = ['one', 'two'];
var [one, two] = arr;

기본값을 생성할 수도 있습니다.

const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'

이 질문은 다소 오래된 것이지만 저는 이 대안(2016) 솔루션을 게시하고 싶습니다.스프레드 연산자 "..."를 사용할 수도 있습니다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

let xAndY = [42, 1337];
let f = function(x, y) { return x + y; };
f(...xAndY);

그것은 파괴적인 임무입니다.일부 브라우저에서는 다음 구문을 사용하여 이를 수행할 수 있습니다.

[one, two] = arr;

바벨이나 트레이서와 같은 최신 브라우저와 트랜스필러에서 지원됩니다.이 기능은 나중에 ECMA스크립트 하모니가 된 ECMA스크립트 4와 함께 도입되었으며 결국 ES 2015가 되었습니다.

배열 항목을 함수 인수로 전달하려면 배열의 적용 함수를 사용할 수 있습니다.

진지한 생각의 구현.

http://jsfiddle.net/RichAyotte/6D2wP/

(function(a, b, c, d) {
    console.log(a, b, c, d);   
}.apply(this, ['a', 'b', 'c', 'd']));

파괴 할당 구문은 배열의 값이나 객체의 속성을 다른 변수로 풀 수 있게 해주는 자바스크립트 표현입니다.

여기 예가 있습니다.이렇게 해보세요.

 let a, b, rest;
[a, b] = [10, 20];

console.log(a);
// expected output: 10

console.log(b);
// expected output: 20

[a, b, ...rest] = [10, 20, 30, 40, 50];

console.log(rest);
// expected output: Array [30,40,50]
var one = arr[0];
var two = arr[1];

커피스크립트 has it: http://jashkenas.github.com/coffee-script/ # pattern_

그리고, 페이지 상단에서 인용했습니다.

"커피스크립트는 자바스크립트로 컴파일되는 작은 언어입니다.자바스크립트의 덜 과시적인 아이 동생이라고 생각해 보세요. 유전자도 같고 키도 비슷하지만 스타일은 다릅니다.몇 가지 보너스 상품을 제외하고, 커피스크립트의 문장은 자바스크립트의 동등한 문장과 일대일 대응되며, 그것은 단지 다른 방식으로 말하는 것일 뿐입니다.

예를 들어, 배열이나 배열 길이를 모르는 경우에도 사용할 수 있습니다.

arr = ['one', 'two'];
var length = arr.length;
for (var i = 0; i < length; i++)
{
   var val = arr[i];
   eval('var '+arr[i]+'= arr[i];');
}

두 개의 변수가 있다는 것을(를)첫째는 '하나'인 '하나'이고, 둘째는 '둘'인 '둘'입니다.당신의 문제는 해결됐습니다!하지만 코드 스니펫의 경우, var를 표시할 추가 요소를 만들어 기록했습니다.

arr = ['one', 'two'];
var length = arr.length;
for (var i = 0; i < length; i++)
{
   var val = arr[i];
   eval('var '+arr[i]+'= arr[i];');
}
var p = document.createElement("p");
p.innerHTML = one + " " + two;
document.body.appendChild(p);
console.log(one, two);

arr = ['one', 'two'];
var length = arr.length;
for (var i = 0; i < length; i++)
{
   var val = arr[i];
   eval('var '+arr[i]+'= arr[i];');
}
var p = document.createElement("p");
p.innerHTML = one + " " + two;
document.body.appendChild(p);
console.log(one, two);

언급URL : https://stackoverflow.com/questions/3422458/unpacking-array-into-separate-variables-in-javascript

반응형