我有一个带有键值对的对象,其中value是一个数组。像这样
{
"a": [12],
"b": [1,3],
"c": [0,4],
"d": [0.5],
"e": [3,4],
"f": [3,4],
"g": [],
"h": [],
}
我想遍历此对象,并保留最后一个键,没有空数组。因此,基本上从上面的示例开始,我只想保留 f 键,因为它是没有空数组的最后一个键,并删除除此键以外的所有其他键。对象应该看起来像这样。
{
"f": [3,4]
}
实现此目标的最佳方法是什么?可以使用删除方法吗?
答案 0 :(得分:0)
使用Object.keys遍历数组的键。这将创建一个数组,您可以根据需要对它进行排序,因为javascript中的对象属性没有“自然顺序”。
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);
答案 1 :(得分:0)
看看这个,我向后遍历了一个非空数组:
<!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>