如何在 JS 对象文字中放置三元条件
How can I put a ternary conditional in a JS object literal
如何在 JS 对象字面量中放入三元条件?
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
(options[0] == 1) ? "01" : EXVOORh01, : {};
(options[5] == 6) ? "06" : EXVOORh06, : {};
(options[7] == 8) ? "08" : EXVOORh08, : {};
(options[3] == 4) ? "04" : EXVOORh04, : {};
};
console.log(overlayEXVOORh);
下面是正在运行的 JS 对象,但我的目标是让它“更聪明”
var overlayEXVOORh = {
"06": EXVOORh06,
"07": EXVOORh07,
"08": EXVOORh08,
"01": EXVOORh01,
"02": EXVOORh02,
"03": EXVOORh03,
};
对象必须是 key/value 对,因为我使用的是传单库。
你几乎答对了,只是顺序打乱了
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
"01": (options[0] == 1) ? 'EXVOORh01' : {},
"03": (options[7] == 9) ? 'EXVOORh03' : {},
"06": (options[5] == 6) ? 'EXVOORh06' : {},
"08": (options[7] == 8) ? 'EXVOORh08' :
{},
"04": (options[3] == 4) ? 'EXVOORh04' :
{},
};
console.log(overlayEXVOORh);
编辑:
添加失败条件 "03"
使用 ES6,您可以像这样使用展开操作数来创建可选键:
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
...(options[0] == 1 ? { "01" : EXVOORh01 } : {});
...(options[5] == 6 ? { "06" : EXVOORh06 } : {});
...(options[7] == 8 ? { "08" : EXVOORh08 } : {});
...(options[3] == 4 ? { "04" : EXVOORh04 } : {});
};
简短的解释是解析为 { "01" : EXVOORh01 }
或 {}
,然后将其传播到对象中。
你可以这样做:
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
"01" : (options[0] == 1) ? "EXVOORh01" : {},
"06" : (options[5] == 6) ? "EXVOORh06" : {},
"08" : (options[7] == 8) ? "EXVOORh08" : {},
"04" : (options[3] == 4) ? "EXVOORh04" : {}
};
console.log(overlayEXVOORh);
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
var overlayEXVOORh = {};
options.forEach(
(element, index) => {
if (options[element - 1] === index + 1) {
overlayEXVOORh[options[element - 1]] = {};
} else {
overlayEXVOORh["EXVOORh" + element] = {};
}
});
console.log( overlayEXVOORh );
我不确定你想要什么,但它可能对你有帮助。
在javascript中,object可以作为object[key]来访问,在这种情况下,key只是一个字符串。
所以如果字符串有一些规则,比如“prefixStringPostfix”,你可以使用循环。
喜欢下面的代码
for(const value of array){
if(condition) object[value] = something
}
如何在 JS 对象字面量中放入三元条件?
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
(options[0] == 1) ? "01" : EXVOORh01, : {};
(options[5] == 6) ? "06" : EXVOORh06, : {};
(options[7] == 8) ? "08" : EXVOORh08, : {};
(options[3] == 4) ? "04" : EXVOORh04, : {};
};
console.log(overlayEXVOORh);
下面是正在运行的 JS 对象,但我的目标是让它“更聪明”
var overlayEXVOORh = {
"06": EXVOORh06,
"07": EXVOORh07,
"08": EXVOORh08,
"01": EXVOORh01,
"02": EXVOORh02,
"03": EXVOORh03,
};
对象必须是 key/value 对,因为我使用的是传单库。
你几乎答对了,只是顺序打乱了
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
"01": (options[0] == 1) ? 'EXVOORh01' : {},
"03": (options[7] == 9) ? 'EXVOORh03' : {},
"06": (options[5] == 6) ? 'EXVOORh06' : {},
"08": (options[7] == 8) ? 'EXVOORh08' :
{},
"04": (options[3] == 4) ? 'EXVOORh04' :
{},
};
console.log(overlayEXVOORh);
编辑:
添加失败条件 "03"
使用 ES6,您可以像这样使用展开操作数来创建可选键:
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
...(options[0] == 1 ? { "01" : EXVOORh01 } : {});
...(options[5] == 6 ? { "06" : EXVOORh06 } : {});
...(options[7] == 8 ? { "08" : EXVOORh08 } : {});
...(options[3] == 4 ? { "04" : EXVOORh04 } : {});
};
简短的解释是解析为 { "01" : EXVOORh01 }
或 {}
,然后将其传播到对象中。
你可以这样做:
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
var overlayEXVOORh = {
"01" : (options[0] == 1) ? "EXVOORh01" : {},
"06" : (options[5] == 6) ? "EXVOORh06" : {},
"08" : (options[7] == 8) ? "EXVOORh08" : {},
"04" : (options[3] == 4) ? "EXVOORh04" : {}
};
console.log(overlayEXVOORh);
var options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
var overlayEXVOORh = {};
options.forEach(
(element, index) => {
if (options[element - 1] === index + 1) {
overlayEXVOORh[options[element - 1]] = {};
} else {
overlayEXVOORh["EXVOORh" + element] = {};
}
});
console.log( overlayEXVOORh );
我不确定你想要什么,但它可能对你有帮助。
在javascript中,object可以作为object[key]来访问,在这种情况下,key只是一个字符串。
所以如果字符串有一些规则,比如“prefixStringPostfix”,你可以使用循环。
喜欢下面的代码
for(const value of array){
if(condition) object[value] = something
}