在JS中;
试图编写一个函数,该函数需要一个对象数组和一系列参数。该函数将删除任何未作为参数给出的属性。
例:
输入
cleanseData([{a:'b',c:'d'},{a:'q'}],'a');
输出
[{a:'b'},{a:'q'}]
这是尝试过的函数,但对象保持不变。
var cleanseData = function(listObj, key1, key2, key3) {
for (var i=0; i<listObj.length; i++) {
for(k in listObj[i]) {
if(k !== key1 && k!==key2 && k!==key3) {
delete listObj[i].k;
}
}
}
return listObj;
}
最佳答案
在这条线...
delete listObj[i].k;
它正在尝试删除属性
k
,该属性不存在。改成...delete listObj[i][k];
Fiddle