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