从javascript数组拼接2个键的最佳方法
我的目标如下:从javascript数组拼接2个键的最佳方法,javascript,arrays,Javascript,Arrays,我的目标如下: var obj = { "2014": {}, "2013": {}, "2012": {}, "description": null, "image": null }, objKeys = Object.keys(obj); //objKeys contains [ "2014", "2013", "2012", "description", "image" ] 如果objKeys数组中存在“description”和“image”,我想一次性删除它们 我如何才能做到
var obj = { "2014": {}, "2013": {}, "2012": {}, "description": null, "image": null },
objKeys = Object.keys(obj);
//objKeys contains [ "2014", "2013", "2012", "description", "image" ]
如果objKeys数组中存在“description”和“image”,我想一次性删除它们
我如何才能做到这一点?您可以像这样过滤掉它们:
objKeys = objKeys.filter(function(x){ return !/[a-z]/gi.test(x)});
上面使用了其他键都是数字的事实。如果只需要说明
和图像
,请将它们放入数组中,然后执行以下操作:
var removeKeys = ["description","image"];
objKeys = objKeys.filter(function(x){ return !new RegExp(removeKeys.join("|")).test(x)});
您希望保留的键是否始终为数字?我假设他们是“年”
objKeys.filter(数字);//["2012", "2013", "2014"]
您可以使用regex直接过滤它们
objKeys = objKeys.filter(function(k){ return !/(description|image)/gi.test(k)});
对@hutchbat答案的一个小修改,为什么要在关键点上进行两次迭代 Object.keys是一个,filter是另一个。这是我的密码
var objKeys = [];
for(var i in obj) if(!/(description|image)/gi.test(i)) objKeys.push(i);
所以它迭代一次并收集所需的数据