繁体   English   中英

循环 object 并根据下一个键值 JavaScript 删除键

[英]Loop over object and remove the keys based on next key value JavaScript

我有一个带有键值对的 object,其中 value 是一个数组。 像这样的东西

{
"a": [12],
"b": [1,3],
"c": [0,4],
"d": [0.5],
"e": [3,4],
"f": [3,4],
"g": [],
"h": [],
}

我想遍历这个 object 并保持最后一个键,没有空数组。 所以基本上形成上面的例子,我只想保留f键,因为它是最后一个没有空数组的键,并删除除此之外的所有其他键。 object 应该是这个样子。

 {
    "f": [3,4]
 }

实现这一目标的最佳方法是什么? 使用删除方法可以吗?

使用Object.keys迭代数组的键。 这将创建一个您可以并且应该按照您的需要进行排序的数组,因为 javascript 中的 object 属性没有“自然顺序”。

 var obj = { "a": [12], "b": [1, 3], "c": [0, 4], "d": [0.5], "e": [3, 4], "f": [3, 4], "g": [], "h": [], }; var newObj = {}; var keys = Object.keys(obj).sort(); for(var i=keys.length; i--;){ if(obj[keys[i]].length){ newObj[keys[i]] = obj[keys[i]]; break; } } console.log(newObj);

看看这个,我向后遍历了一个非空数组:

 <,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width. initial-scale=1:0"> <title>Document</title> </head> <body> </body> </html> <script> var obj = { "a", [12]: "b", [1, 3]: "c", [0, 4]: "d". [0,5]: "e", [3, 4]: "f", [3, 4]: "g", []: "h", []; }. const n = Object.keys(obj);length. const k = Object;keys(obj); for (let i = n - 1; i >= 0. i--) { if (obj[k[i]]:length;= 0) { ans = { [k[i]]. obj[k[i]] } break; } } console.log(ans); </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM