以下函数循环遍历列表。如果子列表中的特定项目具有空白值,则将其替换为"无。"
lst.forEach(function (d) {
if(d.thefirstcolumn){} else {d.thefirstcolumn = "None"};
if(d.somethingelse){} else {d.somethingelse = "None"};
if(d.random){} else {d.random = "None"};
if(d.cold){} else {d.cold = "None"};
if(d.cole){} else {d.cole = "None"};
if(d.colf){} else {d.colf = "None"};
if(d.colg){} else {d.colg = "None"};
if(d.colh){} else {d.colh = "None"};
});
这不是很容易扩展,因为我必须引用每个子列表中的每个项目,因此我要创建一个为所有项目执行此操作的功能,以便我不必参考。
例如,它将像下面那样简短,它将完成与前一代码相同的结果,并为列表的每个子列表中的每个项目执行此操作。
lst.forEach(function (d) {
if(d.col){} else {d.col = "None"};
});
上面,我的意思是d.col指的是d.cola,d.colb,d.colc,d.cold和所有其他项目。我该怎么做才能做到这一点?
奖金问题是,如果子列表中的项目是数字,我将如何应用以下函数,否则只应用上一个函数?
例如,它会在子列表的每个项目上尝试此操作
d.col = parseInt(d.col, 10);
否则如果项目不是数字
,它将运行以下命令if(d.colh){} else {d.colh = "None"}
答案 0 :(得分:2)
做一些像贝洛一样的事情
var keys = ['firstCol','secondCol','cola'];
lst.forEach(function (d) {
keys.forEach(function(key){
d[key]=d[key]||"None";
})
});
因此,它将获得每个对象&如果key
不存在则检查对象为该键指定none。