我有以下if-else
:
if (entity.length > depot.length) {
for (var i = 0 ; i < entity.length; i++) {
promises.push(this.getDataFromREST(security, i));
console.log(entity, depot)
}
} else {
for (var i = 0 ; i < depot.length; i++) {
promises.push(this.getDataFromREST(security, i));
console.log(entity, depot)
}
}
entity
和depot
是数组,但如果它们没有保存数据= "NULL"
。
基本上,出于本说明的目的,我希望将"NULL"
的长度读为0,或if
entity
是长度为1+且{{1}的数组是一个字符串 - 满足条件depot
。
答案 0 :(得分:4)
如果entity
和depot
都可以是“NULL”字符串或有效数组,您只需检查"NULL"
,计算其长度一次并使用一个循环:
var loopLength = Math.max(entity === 'NULL' ? 0 : entity.length,
depot === 'NULL' ? 0 : depot.length);
for (var i = 0 ; i < loopLength; i++) {
promises.push(this.getDataFromREST(security, i));
console.log(entity, depot)
}
仅当至少entity
或depot
不是"NULL"
字符串且有效的非空数组时,此循环才会运行。
答案 1 :(得分:2)
您可以做的是定义一个函数长度,如下所示
function length(s){
if(s === "NULL") return 0;
else return s.length;
}
然后按照您的方式编写代码,但使用此函数进行长度
var entityLength = length(entity);
var depotLength = length(depot);
if (entityLength > depotLength)
var loopLength = entityLength;
else
var loopLength = entityLength;
for (var i = 0 ; i < loopLength; i++) {
promises.push(this.getDataFromREST(security, i));
console.log(entity, depot)
}