有人能解释我在做这到底错在这里:删除从Javascript的一个关键的每一个实例对象
我有以下代码:
console.log(table);
$.each(datatableFields, function (a, b) {
if ($.inArray(b.substring(0, 3), neededFields) == -1) {
console.log('deleting ' + b);
delete table[b];
}
});
console.log(table);
我试图实现宜很简单:
我有一个Javascript对象,我想“剥离”并删除任何不必要的字段。
'neededFields'数组简单地包含我希望保留的字段列表,但不在该数组中的任何内容都将从主对象中移除。
运行上面的代码,我可以确认逻辑工作,并确定Firebug显示我完美地为主对象中的任何字段“删除###”,而不是在'neededFields'中。
但是...
它不会出现好像我的“删除表[B]”命令作品旨在成为“的console.log(表)”返回相同的结果!
有什么想法?
仿佛我有以下的对象的示例:
{ABC:123,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC:123 ,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC:123,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC :123,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC:123,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC:123,CDE:456,FGH:789,IJK:012,LMN:345},
{ABC:123,CDE:456,FGH:789,IJK:012,LMN:345} (等......)
和除去某些键(说IJK和ABC) ,我的最终结果将是:
{CDE:456,FGH:789,LMN:345},
{CDE:456,FGH:789,LMN:345},
{CDE:456,FGH:789,LMN:345},
{CDE:456,FGH:789,LMN:345 },
{CDE:456,FGH:789,LMN:345},
{CDE:456,FGH:789,LMN:345},
{CDE:456,FGH:789 ,LMN:345} (等......))
编辑
“datatableFields”是包含在主对象内的所有键的阵列,同样“neededFields”是包含需要被保持的键阵列。
我不明白你为什么不这样做。每个$(表,函数(){})包含什么datatableFields –
因为这会贯穿整个对象(这可能相当大),我试图优化功能而不是失败。 – JasonMHirst
datatableFields是一个关联数组? –