我在使用for in循环删除对象键时遇到问题

时间:2018-12-05 22:05:39

标签: javascript object for-loop

我正在使用for x in循环来检查[=]的值是否==,如果是,则使用remove删除该属性,但似乎不起作用。

template<typename T>
class vec {
public:
    T iterator;
};

2 个答案:

答案 0 :(得分:1)

您很接近,但是您还需要为每个对象键值引用数组索引。在下面的代码中对此进行解释的注释。

var obj = { online:[],
offline:[],
away:[] };

for(var x in obj){
    if(!obj[x][0]){ // The 0 is the index inside the online array, next loop it will be the offline array and then the away array.
        console.log('The array is empty');
        // Do what you want to do now that it is empty
        // This will continue to loop through and check the value of all the keys in the object.
    }
}
console.log('done');

祝你好运- 米奇来自 https://spangle.com.au

答案 1 :(得分:0)

使用一些调试(仅测试例如console.log是否被打印),您会发现if条件永远都不成立。

这是因为您测试一个数组是否等于一个新创建的空数组。永远不会这样,因为对象是通过对象引用而不是值来比较的。

相反,您可能想通过执行'if(obj [x] .length === 0)'(或更短的时间:'if(!obj [x] .length)')来测试数组是否为空