gpt4 book ai didi

javascript - 嵌套for循环,有更好的方法吗?

转载 作者:行者123 更新时间:2023-12-02 18:30:06 25 4
gpt4 key购买 nike

我需要从存储在数组中的对象中删除空属性,而不触及原始数组。

这是我的代码:

// first I create a copy of the array
parsedShapes = [];
for (var i in shapes) {
parsedShapes.push(shapes[i]);
}
// then for each objects in the new array, I delete all the empty attributes.
for (var i in parsedShapes) {
var objects = parsedShapes[i];
for (var j in objects) {
if (objects[j] === "") {
delete objects[j];
}
}
}

这段代码可以工作,但我想知道是否有更好的方法来处理这个操作。

谢谢。

最佳答案

如果您无法更改“形状”的值,我会尝试这样的操作:

var parsedShapes = shapes.map(function(item){
var obj = {};
for(var i in item){
if(item[i] || (item[i]===false || item[i]===0)){ obj[i] = item[i]; }
}
return obj
});

这样,您只需对“shapes”进行一次循环,而不必迭代“shapes”来创建“parsedShapes”,然后迭代“parsedShapes”以清除空白。

if(item[i] || (item[i]===false || item[i]===0)){ obj[i] = item[i]; }

这将清除任何值“null”或“”。我假设值为“0”或“false”的内容不被视为“空”。

注意filter()仅适用于一个数组。因此,如果集合中的项目是对象,则使用 filter() 将不起作用。

关于javascript - 嵌套for循环,有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com