如何在循环中创建对象文本数组?

2022-08-30 00:41:08

我需要创建一个对象文本数组,如下所示:

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);
}

的值应位于数组的每个元素中。keyresults[i].label


答案 1
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
    });
}

答案 2

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;

上述方法应该比在整个对象数组中搜索每次访问的密钥要快得多,而且习惯性强得多。