gpt4 book ai didi

javascript - 从 javascript 对象键创建对象数组

转载 作者:行者123 更新时间:2023-11-28 19:26:12 25 4
gpt4 key购买 nike

我正在尝试在可操作的电子表格上执行列映射,并且我想动态加载电子表格并在每行前面添加一个复选框。基于我的研究,包括 How to add properties dynamically to each object in an javascript array ,似乎最好的方法是为可操作的“列”属性创建一个对象数组。您可以在 http://jsfiddle.net/kc11/o4d6gr6n/ 看到这一点.

所以我需要做的是创建:

 [
{data: "check", type: 'checkbox'},
{data: "year", type: 'text'},
{data: "car", type: 'text'},
{data: "available", type: 'text'},
{data: "comesInBlack", type: 'text'},
]

来自:

 function getCarData() {
return [
{car: "Mercedes A 160", year: 2006, available: true, comesInBlack: 'yes'},
{car: "Citroen C4 Coupe", year: 2008, available: false, comesInBlack: 'yes'},
{car: "Audi A4 Avant", year: 2011, available: true, comesInBlack: 'no'},
{car: "Opel Astra", year: 2004, available: false, comesInBlack: 'yes'},
{car: "BMW 320i Coupe", year: 2011, available: false, comesInBlack: 'no'}
];
}

我首先获取列的键并在“检查”列前面添加:

    var keys = $.map(getCarData()[0], function(element,key) { return key; }); 
keys.unshift("check");

但是由于我有限的 JS 知识,我不知道如何完成剩下的工作。谁能告诉我下一步该怎么做?

最佳答案

可以循环数组并添加属性,执行以下操作:

var myData = getCarData();
$.each(myData, function(){
/* add new property "checked" */
this.checked = false
});

/* or */
var myData = $.map(getCarData(), function(row){
row.checked = false;
return row;
});
/* returns rows like
{checked:false, car: "Mercedes A 160", year: 2006, available:....}*/

然后使用文档中的复选框模板列定义

var example2 = document.getElementById('example2');
var hot2 = new Handsontable(example2,{
data:myData,
columns: [
{
data: "checked",
type: "checkbox",
checkedTemplate: true,
uncheckedTemplate: false
},
{data: "year", type: 'text'},
{data: "car", type: 'text'},
{data: "available", type: 'text'},
{data: "comesInBlack", type: 'text'},
]
});

关于javascript - 从 javascript 对象键创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27825162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com