我有一个对象:
"languages": {
"en":["au", "uk"],
"de":["de"],
....
}
我如何仅保留特定键,比如说我指定'en',那么我只需要一个包含"en":["au", "uk"]的对象。我有一个对象:
"languages": {
"en":["au", "uk"],
"de":["de"],
....
}
我如何仅保留特定键,比如说我指定'en',那么我只需要一个包含"en":["au", "uk"]的对象。从Rajaprabhu的答案中精练出来的“如何删除除指定键以外的所有键”的通用解决方案:
validKeys = [ 'a', 'b', 'c' ];
userInput = { "a":1, "b":2, "c":3, "d":4, "e":5 }
Object.keys(userInput).forEach((key) => validKeys.includes(key) || delete userInput[key]);
简单来说,您可以创建一个具有指定字段的新对象;
var key = 'en';
var o = {
"languages": {
"en": ["au", "uk"],
"de": ["de"]
}
}
var res = {}
res[key] = o.languages[key];
key
的情况下,我们会创建一个新的数组条目,并带有键和未定义的值。这可能是不可取的。 - pjb尝试使用delete
删除不需要的属性。
var obj = { "languages": { "en":["au", "uk"],"de":["de"] }};
Object.keys(obj.languages).forEach(function(itm){
if(itm != "en") delete object.languages[itm];
});
delete
就可以完成。var key = 'en';
for (var k in obj.languages) {
if (obj.languages.hasOwnProperty(k) && k != key) {
delete obj.languages[k];
}
}
我正在寻找答案,之前的回答对我有帮助,只是我需要一个可用版的代码,以下是我所需的:
最初的回答:function returnNewObjectOnlyValidKeys(obj, validKeys) {
const newObject = {};
Object.keys(obj).forEach(key => {
if (validKeys.includes(key)) newObject[key] = obj[key];
});
return newObject;
}
'en'
? - Mike Cluck