如何使用Node.js更新for循环内数组中的单个键值?

时间:2019-01-21 09:43:17

标签: javascript node.js

我想更新for循环内的flags []数组中的每个字段。在每次迭代期间,我需要将各自的标志更新为true。请帮我解决这个问题。

var flags = {terminationFlag : false,
        transferFlag : false,
        jrCancelledFlag : false,
        jrFilledFlag : false,
        jrOpenFlag : false,
        miegFlags : false,
        headcountFlag : false,
        replacementReqFlag : false,
        costcentreFlag : false,
        gradeMapFlag : false}


var array = [1,2,3,4,5,6,7,8,9,10];
for (i=0; i < array.length ;i++){
flags[i] = true
}

if (("terminationFlag" = true) && ("transferFlag" = true)){
 //do some operation
 }  

3 个答案:

答案 0 :(得分:1)

您有一个不是数组的flags对象。如果需要数组,可以使用Object.keys

let flags = {
  terminationFlag: false,
  transferFlag: false,
  jrCancelledFlag: false,
  jrFilledFlag: false,
  jrOpenFlag: false,
  miegFlags: false,
  headcountFlag: false,
  replacementReqFlag: false,
  costcentreFlag: false,
  gradeMapFlag: false
}

Object.keys(flags).forEach(key => {
  flags[key] = true;
})
console.log(flags)

PS:if (("terminationFlag" = true) && ("transferFlag" = true)){

将无法按预期工作,因为您尝试在if语句中将字符串设置为true而不是对其进行测试

if (flags["terminationFlag"] && flags["transferFlag"]) {

if (flags["terminationFlag"]===true && flags["transferFlag"]===true) {

答案 1 :(得分:0)

flagsObject。因此,您可以使用Object.key()来迭代键并分配值。

'use strict';

var flags = {
  terminationFlag: false,
  transferFlag: false,
  jrCancelledFlag: false,
  jrFilledFlag: false,
  jrOpenFlag: false,
  miegFlags: false,
  headcountFlag: false,
  replacementReqFlag: false,
  costcentreFlag: false,
  gradeMapFlag: false
};

for (let attr of Object.keys(flags)) {
  flags[attr] = true;
}

也是

  

if(((“ terminationFlag” = true)&&(“ transferFlag” = true)){

您正在使用=表示分配。您需要使用====来检查条件。而且,由于我们知道需要检查其值的密钥,因此可以使用真实检查进行检查。

if (flags.terminationFlag && flags.transferFlag) {
  //do some operation
}

答案 2 :(得分:0)

代码中的传统for循环用于遍历数组中的元素,而不是所提供的flags对象中的键值对。

请改为使用for...in语句遍历flags对象中的键,并将键的值设置为true

尝试一下:

var flags = {terminationFlag : false,
    transferFlag : false,
    jrCancelledFlag : false,
    jrFilledFlag : false,
    jrOpenFlag : false,
    miegFlags : false,
    headcountFlag : false,
    replacementReqFlag : false,
    costcentreFlag : false,
    gradeMapFlag : false}

// a little more readable than the previous answers
for (var prop in flags) {
  flags[prop] = true;
}

console.log(flags);