IT박스

.push () 메서드를 통해 객체에 항목 추가

itboxs 2020. 11. 23. 07:57
반응형

.push () 메서드를 통해 객체에 항목 추가


'체크 박스'유형의 몇 가지 입력 요소를 통해 루프를 수행하고 있습니다. 그 후 값을 추가하고 배열에 속성을 확인합니다. 이것은 내 코드입니다.

var stuff = {};
$('form input[type=checkbox]').each(function() {
    stuff[$(this).attr('value')] = $(this).attr('checked');
});

이것은 잘 작동하지만 Jquery에서 .push () 메서드로 똑같은 일을 할 수 있는지 궁금합니다.

나는 이와 같은 것을 시도했지만 작동하지 않습니다.

stuff.push( {$(this).attr('value'):$(this).attr('checked')} );

편집하다:

Object에서 .push () 메서드를 사용하려고했지만 .push ()는 실제로 Array Object의 메서드입니다.


.push()내장 배열 객체 의 메소드입니다.

어떤 식 으로든 jQuery와 관련이 없습니다.

리터럴 객체정의하고 있습니다.

// Object
var stuff = {};

다음 과 같이 리터럴 배열을 정의 할 수 있습니다.

// Array
var stuff = [];

그때

stuff.push(element);

배열은 실제로 stuff[index]부모 인 Object에서 상속 된 대괄호 구문을 얻습니다 . 이것이 첫 번째 예에서와 같은 방식으로 사용할 수있는 이유입니다.

이것은 속성에 동적으로 액세스하기 위해 쉽게 반영하는 데 자주 사용됩니다.

stuff = {}; // Object

stuff['prop'] = 'value'; // assign property of an 
                         // Object via bracket syntax

stuff.prop === stuff['prop']; // true

그래서 쉽습니다))))

이것을보세요...

    var stuff = {};
    $('input[type=checkbox]').each(function(i, e) {
        stuff[i] = e.checked;
    });

그리고 당신은 :

Object {0: true, 1: false, 2: false, 3: false}

또는:

$('input[type=checkbox]').each(function(i, e) {
    stuff['row'+i] = e.checked;
});

당신은 할 것:

Object {row0: true, row1: false, row2: false, row3: false}

또는:

$('input[type=checkbox]').each(function(i, e) {
    stuff[e.className+i] = e.checked;
});

당신은 할 것:

Object {checkbox0: true, checkbox1: false, checkbox2: false, checkbox3: false}

stuff객체이며 push배열의 메서드입니다. 따라서 stuff.push(..).

stuff배열 정의한 다음 그것에 메서드를 호출 할 수 있다고 가정 해 봅시다 .stuff = []; push

이것은 객체 [키 / 값]이 잘 형성 되었기 때문에 작동합니다.

stuff.push( {'name':$(this).attr('checked')} );

개체가 제대로 형성되지 않았기 때문에 이것은 작동하지 않습니다.

stuff.push( {$(this).attr('value'):$(this).attr('checked')} );

이것은 우리가 stuff연관 배열로 취급 하고 여기에 값을 추가 하기 때문에 작동 합니다.

stuff[$(this).attr('value')] = $(this).attr('checked');


이를 수행하는 또 다른 방법은 다음과 같습니다.

stuff = Object.assign(stuff, {$(this).attr('value'):$(this).attr('checked')});

여기에서 더 읽기 : Object.assign ()


This is really easy: Example

//my object
var sendData = {field1:value1, field2:value2};

//add element
sendData['field3'] = value3;

참고URL : https://stackoverflow.com/questions/7261431/adding-items-to-an-object-through-the-push-method

반응형