0

我有一个数组,其中使用其他元素的 ID 值(不是整数)存储项目。单击按钮后,我希望能够一举将此数组中每个项目的布尔值更改为“假”。我假设这不能通过循环来完成,因为我只熟悉使用整数递增的循环。有没有办法一次改变所有这些价值观,还是我只需要重新考虑一下?

4

1 回答 1

0

因为你没有准确地发布你的数组看起来像我假设一个结构。此代码会将所有布尔值重置为 false:

var array = {
    "id1":"foo",
    "id2":"bar",
    "id3":true,
    "id4":1,
    "id5":false,
};

$.each(array,function(index,obj){
    if(typeof obj === 'boolean' ) array[index] = false;
});

console.log(array);

这是一个jsfiddle(检查控制台日志)

理解这一点的技巧是javascript中的数组也是带有数字键的对象。不过,键不必是数字,您仍然可以使用非数字键访问数组。例如使用上面的数组,array["id1"]在 javascript 中是完全有效的。它相当于array.id1

更新

'array' 变量在这里并不是真正的数组,而是一个对象。详情请阅读下方@BalusC 的评论。

于 2013-08-15T14:35:23.883 回答