我有一个对象:
"languages": {
"en":["au", "uk"],
"de":["de"],
....
}
如何删除除指定键之外的所有内容,因此如果我指定'en',我只想要一个包含“en”的对象:[“au”,“uk”]
答案 0 :(得分:13)
简单地说,您可以创建一个具有指定字段的新对象;
var key = 'en';
var o = {
"languages": {
"en": ["au", "uk"],
"de": ["de"]
}
}
var res = {}
res[key] = o.languages[key];
答案 1 :(得分:10)
原始问题的一般解决方案'如何删除除指定键以外的所有键'(从Rajaprabhu的答案中提炼):
pp
答案 2 :(得分:8)
尝试delete
不需要的属性
var obj = { "languages": { "en":["au", "uk"],"de":["de"] }};
Object.keys(obj.languages).forEach(function(itm){
if(itm != "en") delete object.languages[itm];
});
答案 3 :(得分:5)
使用delete
的简单循环可以实现。
var key = 'en';
for (var k in obj.languages) {
if (obj.languages.hasOwnProperty(k) && k != key) {
delete obj.languages[k];
}
}
答案 4 :(得分:0)
正在寻找答案,前面的答案对我有帮助,只需添加我需要的功能版本的代码:
function returnNewObjectOnlyValidKeys(object, validKeys) {
const newObject = {};
Object.keys(object).forEach(key => {
if (validKeys.includes(key)) newObject[key] = object[key];
});
return newObject;
}