簡體   English   中英

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"}

這有兩個部分:

  1. 遍歷對象的屬性

  2. 從對象中刪除屬性

這個問題的答案涵蓋了很多方法。 假設您只在乎“自己的”(非繼承)屬性,我可能會使用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刪除密鑰

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)

的jsfiddle

一個簡單的解決方案,通過迭代拋出對象的鍵並在結果Array中推送匹配的屬性:

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' }
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]);
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM