我想更新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
}
答案 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)
flags
是Object
。因此,您可以使用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);