簡體   English   中英

如何基於javaScript中的條件從對象中刪除值

[英]How do I delete a value from an object based on criteria in javaScript

為什么此代碼運行時沒有錯誤,卻沒有從obj中刪除任何內容?

 function removeEvenValues(obj) { for (i=0; i < obj.length;++i) if (obj[i].value%2===0) delete obj[i]; return obj; } const obj = {a:1, b:2 ,c:3, d:4} const res = removeEvenValues(obj); console.log(res); 

與Python不同,您不能僅僅因為obj.length === undefined迭代對象的長度。 您可以使用Object.keys()獲取鍵數組。 然后,您可以迭代它們:

 obj = {a:1,b:2,c:3,d:4} function removeEvenValues(obj) { Object.keys(obj).forEach(key =>{ if (obj[key] % 2 ===0) delete obj[key]; }) return obj; } console.log(removeEvenValues(obj)) 

或者您也可以for...in使用for...in

 obj = {a:1,b:2,c:3,d:4} function removeEvenValues(obj) { for(let key in obj){ if (obj[key] % 2 ===0) delete obj[key]; } return obj } console.log(removeEvenValues(obj)) 

暫無
暫無

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

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