Answers:
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
});
}
var obj
使代码更清晰,当然您可以跳过它,可以根据需要在一行中编写整个脚本:)
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;
上面的方法应该比在整个对象数组中为每次访问搜索键都更快,更惯用。
这将起作用:
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 = new Array();
for (var i = 0; i < oFullResponse.results.length; i++) {
myColumnDefs.push({key:oFullResponse.results[i].label, sortable:true, resizeable:true});
}
[]
而不是初始化数组new Array()
。
var obj = {
一步,只需按原义本身即可。