我正在检查三个不同的变量,它们保存如下所示的字符串数组。
var a = ["ghi",dwe"]
var b = ["ghsj"]
var c = ["gdjr"]
var result; // result array
我每次都会检查变量 a、b、c 是否未定义以及它们是否持有某个值 我只是为结果数组中的每个变量推送一个字符串。
下面是相同的代码行。
if(a !== undefined && a.length > 0) {
result.push("Astring");
}
if(b !== undefined && b.length > 0) {
result.push("Bstring");
}
if(c!== undefined && c.length > 0) {
result.push("Cstring");
}
如果定义了 var a、b、c 并且非空,则预期结果应该是:结果数组变量应保存如下所示的值
["Astring","BString","CString"]
有没有更有效的方法来描述这段代码。这里我只是检查一下 每个变量都使用 if 条件。另外,我在某些方面受到限制,因为我使用的是 Rhino js 引擎版本 1.7.12。
最佳答案
您可以使用初始数据创建一个对象。然后对其进行迭代,如果符合您的条件,则附加键(例如 a
、b
或 c
)。
这是一个快速演示:
// Initial Data
const a = ['ghi', 'dwe'];
const b = ['ghsj'];
const c = ['gdjr'];
// Store intial within an array
const abc = {a, b, c};
const result = [];
// Append each data item that present, is array, and not empty
Object.keys(abc).forEach((letterKey) => {
const content = abc[letterKey];
if(Array.isArray(content) && content.length > 0) {
result.push(letterKey);
}
});
// Print results
console.log(result);
关于javascript - 如何在JS中更高效地描述if条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72328756/