Javascript if-else将数组与字符串进行比较

Javascript if-else将数组与字符串进行比较,javascript,if-statement,Javascript,If Statement,我有以下如果还有: 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

我有以下
如果还有

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)
    }
}
if(entity.length>depot.length){
对于(变量i=0;i
其中
实体
仓库
是数组,但如果它们不保存数据,则它们
=“NULL”


基本上,为了这个解释的目的,我希望
“NULL”
的长度被解读为0,或者
如果
实体
是长度1+的数组,而
仓库
是字符串,则
实体.length>仓库.length
的条件被满足。

如果
实体
仓库
两者都可以是“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)
}
var loopLength=Math.max(entity=='NULL'?0:entity.length,
depot=='NULL'?0:depot.length);
对于(变量i=0;i

只有当至少
实体
仓库
不是
“NULL”
字符串和有效的非空数组时,此循环才会运行。

如果
实体
仓库
都可以是“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)
}
var loopLength=Math.max(entity=='NULL'?0:entity.length,
depot=='NULL'?0:depot.length);
对于(变量i=0;i

仅当至少
实体
仓库
不是
“NULL”
字符串和有效的非空数组时,此循环才会运行。

您可以按照以下方式定义函数长度

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)
    }
var entityLength=长度(实体);
var depotLength=长度(车辆段);
如果(entityLength>depotLength)
var loopLength=整个长度;
其他的
var loopLength=整个长度;
对于(变量i=0;i
您可以做的是定义函数长度,如下所示

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)
    }
var entityLength=长度(实体);
var depotLength=长度(车辆段);
如果(entityLength>depotLength)
var loopLength=整个长度;
其他的
var loopLength=整个长度;
对于(变量i=0;i
so
depot
可以是数组或字符串?我理解对了吗?so
depot
可以是数组或字符串吗?我理解对了吗?啊,太好了。我会试试这个,然后我有时间回来。这是获取循环长度的一种很酷的方法,但如果其中一个是字符串,这将不起作用它输出
entity=“NULL”
depot=[1]
loopLength
应该等于
1
而不是
4
@OmarMowafi哦,现在我明白了,它是一个字符串“NULL”“。我以为它是一个
null
值。查看我的更新。@YeldarKurmangaliyev是的,工作正常。我的解决方案也有效。我不明白为什么我投了反对票:(@OmarMowafi,可能是因为代码重复。如果你去掉它,我会给你一张赞成票:)啊,太好了。我会试试这个,然后我有时间回来。这是一种很酷的获取循环长度的方法,但如果其中一个是字符串,这将不起作用。请尝试一下
entity=“NULL”
depot=[1]
loopLength
应该等于
1
而不是
4
@OmarMowafi哦,现在我明白了,它是一个字符串“NULL”。我认为它是一个
null
值。查看我的更新。@YeldarKurmangaliyev是的,工作正常。我的解决方案也有效。我不明白为什么我投了反对票:(@OmarMowafi,可能是因为代码重复。如果你把它去掉,我会给你一张赞成票:)