JS或jQuery如何删除键值对
JS or jQuery how to delete key-value pair
使用JS或jQuery如何删除值为“Null
” & ""
类型的键值对。
例如
之前:
Object {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null}
改变:
Object {style: "fruit", origin: "Thailand", day: "18d"}
这有两个部分:
遍历对象的属性
从对象中删除一个属性
第一个有很多方法,this question's answers 已涵盖。假设您只关心 "own"(非继承)属性,我可能会使用 Object.keys
来获取 属性 名称的数组,然后循环它。
第二个是使用 delete
运算符完成的。
所以:
Object.keys(theObject).forEach(function(key) {
var value = theObject[key];
if (value === "" || value === null) {
delete theObject[key];
}
});
实例:
var theObject = {
style: "fruit",
origin: "Thailand",
day: "18d",
color: "",
weight: null
};
console.log("Before:", JSON.stringify(theObject, null, 2));
Object.keys(theObject).forEach(function(key) {
var value = theObject[key];
if (value === "" || value === null) {
delete theObject[key];
}
});
console.log("After:", JSON.stringify(theObject, null, 2));
您可以使用for..in
遍历循环来查找哪个键具有null
或""
。
然后使用delete
删除key
var myObj = {
style: "fruit",
origin: "Thailand",
day: "18d",
color: "",
weight: null
}
for(var keys in myObj){
if(myObj[keys] ===null || myObj[keys] === ""){
delete myObj[keys]
}
}
console.log(myObj)
var yourObj={style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null}
for(var attr in yourObj){
if(!yourObj[attr]){
delete yourObj[attr]
}
}
可以使用此代码完成:
var map = {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null};
for (var i in map){
if(map[i]==null || map[i]==""){
delete(map[i]);
}
}
一个简单的解决方案,通过迭代抛出对象的键并将匹配的属性推送到结果数组中:
var input = {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null};
var keys = Object.keys(input);
var result = {};
keys.forEach(key => {if (input[key] != null && input[key] != "") result[key] = input[key]});
console.log(result); // { style: 'fruit', origin: 'Thailand', day: '18d' }
使用JS或jQuery如何删除值为“Null
” & ""
类型的键值对。
例如
之前:
Object {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null}
改变:
Object {style: "fruit", origin: "Thailand", day: "18d"}
这有两个部分:
遍历对象的属性
从对象中删除一个属性
第一个有很多方法,this question's answers 已涵盖。假设您只关心 "own"(非继承)属性,我可能会使用 Object.keys
来获取 属性 名称的数组,然后循环它。
第二个是使用 delete
运算符完成的。
所以:
Object.keys(theObject).forEach(function(key) {
var value = theObject[key];
if (value === "" || value === null) {
delete theObject[key];
}
});
实例:
var theObject = {
style: "fruit",
origin: "Thailand",
day: "18d",
color: "",
weight: null
};
console.log("Before:", JSON.stringify(theObject, null, 2));
Object.keys(theObject).forEach(function(key) {
var value = theObject[key];
if (value === "" || value === null) {
delete theObject[key];
}
});
console.log("After:", JSON.stringify(theObject, null, 2));
您可以使用for..in
遍历循环来查找哪个键具有null
或""
。
然后使用delete
删除key
var myObj = {
style: "fruit",
origin: "Thailand",
day: "18d",
color: "",
weight: null
}
for(var keys in myObj){
if(myObj[keys] ===null || myObj[keys] === ""){
delete myObj[keys]
}
}
console.log(myObj)
var yourObj={style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null}
for(var attr in yourObj){
if(!yourObj[attr]){
delete yourObj[attr]
}
}
可以使用此代码完成:
var map = {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null};
for (var i in map){
if(map[i]==null || map[i]==""){
delete(map[i]);
}
}
一个简单的解决方案,通过迭代抛出对象的键并将匹配的属性推送到结果数组中:
var input = {style: "fruit", origin: "Thailand", day: "18d", color: "", weight: null};
var keys = Object.keys(input);
var result = {};
keys.forEach(key => {if (input[key] != null && input[key] != "") result[key] = input[key]});
console.log(result); // { style: 'fruit', origin: 'Thailand', day: '18d' }