다음과 같이 루프없이 배열 개체를 만들고 있습니다.
var data = [];
var obj = {};
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
위의 코드는 나를 생성 Array[Object]
하지만 아래와 같은 루프에서 이것을 만들려고 할 때 :
var data = [];
for (var i = 0; i < len; i++) {
var obj = {};
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
}
그것은 나 생산 Array[]
여분의 인덱스가 그 두번째 배열. 그래서 어떻게하면 아래와 같은 배열을 얻을 수 있습니까?
Array[Object,Object,Object]
원하는 경우 :- Array[Object,Object,Object]
코드가 완벽하게 작동합니다.
예를 참조하십시오 :-
var data = [];
var len = 3;
for (var i = 0; i < len; i++) {
var obj = {}; // put outside
obj["key1"] = 'val 1';
obj["key2"] = 'val 2';
data.push(obj);
}
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
참고 :-len
어떤 루프가 한 번 더 실행되어 추가 인덱스를 얻었 기 때문에 변수에문제가 있다고 생각합니까?
확인하고 시도한 len = len-1;
다음 루프에서 사용하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다