다음과 같은 객체 리터럴 배열을 만들어야합니다.
var myColumnDefs = [
    {key:"label", sortable:true, resizeable:true},
    {key:"notes", sortable:true,resizeable:true},......
이런 루프에서 :
for (var i = 0; i < oFullResponse.results.length; i++) {
    console.log(oFullResponse.results[i].label);
}
의 값은 배열의 각 요소 에 key있어야합니다 results[i].label.
답변
var arr = [];
var len = oFullResponse.results.length;
for (var i = 0; i < len; i++) {
    arr.push({
        key: oFullResponse.results[i].label,
        sortable: true,
        resizeable: true
    });
}
답변
RaYell의 답변은 좋습니다-귀하의 질문에 답변합니다.
하위 객체를 값으로 사용하여 레이블로 키가 지정된 객체를 실제로 만들어야한다고 생각합니다.
var columns = {};
for (var i = 0; i < oFullResponse.results.length; i++) {
    var key = oFullResponse.results[i].label;
    columns[key] = {
        sortable: true,
        resizeable: true
    };
}
// Now you can access column info like this. 
columns['notes'].resizeable;
위의 접근 방식은 각 액세스에 대한 키를 전체 객체 배열에서 검색하는 것보다 훨씬 빠르고 관용적이어야합니다.
답변
ES6에서 이와 같은 작업을 수행 할 수 있습니다.
new Array(10).fill().map((e,i) => {
   return {idx: i}
});
답변
이것이 Array # map 이 잘하는 것입니다
var arr = oFullResponse.results.map(obj => ({
    key: obj.label,
    sortable: true,
    resizeable: true
}))
답변
이것은 작동합니다 :
 var myColumnDefs = new Object();
 for (var i = 0; i < oFullResponse.results.length; i++) {
     myColumnDefs[i] = ({key:oFullResponse.results[i].label, sortable:true, resizeable:true});
  }
답변
Nick Riggs와 같은 생각이지만 생성자를 만들고 배열을 사용하여 배열에 새 객체를 푸시합니다. 클래스 키의 반복을 피하십시오.
var arr = [];
var columnDefs = function(key, sortable, resizeable){
    this.key = key; 
    this.sortable = sortable; 
    this.resizeable = resizeable;
    };
for (var i = 0; i < len; i++) {
    arr.push((new columnDefs(oFullResponse.results[i].label,true,true)));
}
답변
배열을 만든 다음 객체 리터럴을 추가합니다.
var myColumnDefs = [];
for ( var i=0 ; i < oFullResponse.results.length; i++) {
    console.log(oFullResponse.results[i].label);
    myColumnDefs[myColumnDefs.length] = {key:oFullResponse.results[i].label, sortable:true, resizeable:true};
}
