当我循环遍历数组中的对象时,如何捕获特定的属性值

时间:2017-11-02 10:44:58

标签: javascript arrays object ecmascript-6 es6-promise

我有一个带有一些信息的对象数组,其中一个包含一个布尔值,我想检查它是false还是true超出结果的某些逻辑。问题是我在循环对象时如何捕获这个值。我做了一些尝试,但我无法解决ES6的问题。

对象:

todos:Array[4]
    0:Object
        completed:1
        id:1
        task:"go to home"
    1:Object
        completed:0
        id:2
        task:"go to work"
    2:Object
        completed:0
        id:3
        task:"study laravel"
    3:Object
        completed:0
        id:4
        task:"study Vuejs"

这是我的代码:

this.todos.map((item) => {
    for (let key in item) {
        if (item.hasOwnProperty(key)) {
            if (key === 1) {
                console.log('done');
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

在这里,我将completed字段的值1视为常规布尔值true。当你的对象中有一个布尔字段时,你可以使用相同的想法。

let todos = [{
    completed: 1,
    id: 1,
    task: "go to home"
  },

  {
    completed: 0,
    id: 2,
    task: "go to work"
  },
  {
    completed: 0,
    id: 3,
    task: "study laravel"
  }, 
  {
    completed: 0,
    id: 4,
    task: "study Vuejs"
  }
]

todos.forEach(todo => {
  if (todo.hasOwnProperty("completed") && todo.completed === 1) {
    console.log("DONE!");
  }
})