gpt4 book ai didi

javascript - jQuery DataTables - 重构代码以删除 'aoColumn' 重复项

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

我使用 jQuery DataTables 来呈现时间线,每列代表一天。我有一个方法,在渲染每列(日)时调用,并从数组中传递日期。

有没有更好的方法来编写下面的代码,这样我就不会重复自己 7 次,同时仍然能够传入数组项?我在文档中看不到任何突出的内容。

dataTable = $('#example').dataTable({
"bRetrieve":true,
"bProcessing":true,
"aaData": data,
// DataTables requires a render function for each column (day)
"aoColumns":[
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[0]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[1]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[2]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[3]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[4]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[5]);
}
},
{
"mData":null,
"fnRender":function (obj) {
return day(obj, week[6]);
}
}
]

});

最佳答案

这是一个简单的解决方案,使用 $.map() :

dataTable = $("#example").dataTable({
bRetrieve: true,
bProcessing: true,
aaData: data,
aoColumns: $.map(Array(7), function(value, index) {
return {
mData: null,
fnRender: function(obj) {
return day(obj, week[index]);
}
};
})
});

在上面的代码中,Array(7) 创建了一个包含七个元素的稀疏数组(索引为 06),全部设置为未定义。然后,$.map() 从该数组中的索引投影对象文字。结果是一个对象文字数组,其中 day() 的第二个参数随当前索引而变化。

关于javascript - jQuery DataTables - 重构代码以删除 'aoColumn' 重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18206464/

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