更改对象列表中的值

时间:2016-05-31 18:50:19

标签: javascript for-loop

我有一个对象列表,我需要循环遍历列表并将值从true更改为false。难道不应该使用简单的for循环吗?我错过了什么吗?

var list = [
  { color: 'blue', 'taste': 'sour', 'available': true },
  { color: 'yellow', 'taste': 'bitter', 'available': false },
  { color: 'red', 'taste': 'sweet', 'available': false },
  { color: 'green', 'taste': 'umami', 'available': false }
]

for(var i = 0; i < list.length; i++){
  if(list[i].available === true){
    list[i].available === false;
  }
}

当我返回列表时虽然它正在给我列表,因为它是第一次被捕获的。我使用了错误的循环还是其他的东西?

2 个答案:

答案 0 :(得分:3)

var list = [
  { color: 'blue', 'taste': 'sour', 'available': true },
  { color: 'yellow', 'taste': 'bitter', 'available': false },
  { color: 'red', 'taste': 'sweet', 'available': false },
  { color: 'green', 'taste': 'umami', 'available': false }
]

for(var i = 0; i < list.length; i++){
  if(list[i].available === true){
   // you were not modifying here, just comparing
    list[i].available = false;
  }
}

答案 1 :(得分:1)

您正在使用list[i].available === false进行比较。您需要将false分配到list[i].available。所以,试试这个list[i].available = false