2013-04-15 5 views
1

이것은 꽤 쉬워야하지만 여기서는 약간 혼란 스럽습니다. 나는이 객체 채우려 :배열과 같은 Jquery fill 객체

var obj = { 2:some1, 14:some2, three:some3, XX:some4, five:some5 }; 

을하지만, 처음에 나는이 있습니다

var obj = {}; 

미안하고하지만, 내가 푸시를 사용하고 추가하는 방법을 모르는위한 (), 작동하지 않습니다. 어떤 도움이 필요합니까?

+0

키 순서가 잘못되어 다른 이름 체계가 있습니까? – Jlange

+0

예, 동일하지 않습니다 – RicardoGonzales

답변

2

는 인덱스 대신 사용자 정의 키를 사용하기 때문에 당신은 자바 스크립트 객체로 .push()을 할 수 없습니다 . 이 일을하는 방법은 다음과 같이 꽤 많이 있습니다 :

var obj = {}; 

for (var k = 0; k<10; k++) { 
    obj['customkey'+k] = 'some'+k; 
} 

이 반환 :

obj { 
    customkey0 : 'some0', 
    customkey1 : 'some1', 
    customkey2 : 'some2', 
    ... 
} 

명심 배열 : { 0 : 'some1', 1 : 'some2' } 객체가 대체 어디 : ['some1','some2']는 basicly 같은 및 개체입니다 STRING 키로 "인덱스"(0,1, 등). 희망이 도움이됩니다.

+0

이것은 아주 좋은 양식입니다! 감사. – RicardoGonzales

1

push()은 배열 용이지만 개체를 ​​만듭니다.

당신은 몇 가지 방법으로 객체에 속성을 추가 할 수 있습니다

obj.one = some1; 

또는

obj['one'] = some1; 
0

나는이 같은 간단한 기능을 작성합니다 : 당신이 객체에 값을 추가 할 때 간단하게 호출 할 수 코드에서 다음

function pushVal(obj, value) { 
    var index = Object.size(obj); 
    //index is modified to be a string. 
    obj[index] = value; 
} 

을 :

for(var i=0; i<someArray.length; i++) { 
     pushVal(obj, someArray[i]); 
    } 

을에 대한 정보를 들어 size 함수를 사용했습니다. here을 참조하십시오. 참고로, for 루프에서 인덱스를 사용할 수도 있지만,이 하나의 객체에 여러 배열을 추가하려는 경우 내 메소드는 충돌하는 인덱스를 방지합니다. 당신이 결정하는 방법을 잘 모르겠어요

function pushVal(obj, value, key) { 
    //index is modified to be a string. 
    obj[key] = value; 
} 

or 

obj[key] = value;  

: 개체를 만들기 위해, 질문의 예에서 키를 변경할 것을보고

편집

, 다음을 사용할 수 있습니다 귀하의 핵심 가치, 그래서 그 정보없이, 나는 개체를 다시 만들 솔루션을 작성할 수 없습니다 (즉, 그들은 임의로 나타납니다).

+0

소리가 잘 들지만, 그 문제에 대해서는 "프로토 타입"으로 갈 수 있습니다. 같은 것 Object.prototype.pushVal = function (index, value) { this [index] = value; 이것을 반환하십시오. } 및 이동해야합니다 : var obj = {} obj.pushVal ('some1', 'some1 for some1'); "return this"은 다음과 같이 큐에 넣을 수 있는지 확인하기위한 것입니다 : obj.pushVal ('1', 'test'). pushVal ('2', 'another test') – Bene

+0

간단히 프로토 타입을 피합니다. Object.prototype은 변경 사항에 민감하기 때문에 수정시 항상주의해야합니다. – Jlange

+0

사실. 실제로이 문제는 문제가 있었지만 다른 해결책을 제시하는 것이 었습니다. – Bene

관련 문제