alert(cellvalue)
显示三个单独的弹出窗口:-10-|Car|*POB*[,]-20-|Bus|*CLR*
-22-|Car|*CLR*[,]-5-|Bus|*POB*
-12-|Car|*POB*[,]-55-|Bus|*CLR*
然后,我将这些值拆分并获得我需要的三个值,如下所示:
var array = cellvalue.split("[,]");
var start_carStat = array[0].indexOf('*') + 1;
var end_carStat = array[0].indexOf('*',start_carStat);
var text_carStat = array[0].substring(start_carStat,end_carStat);
警报(text_carNum);显示“ 10”,“ 22”,“ 12”
var start_carNum2 = array[1].indexOf('-') + 1;
var end_carNum2 = array[1].indexOf('-',start_carNum2);
var text_carNum2 = array[1].substring(start_carNum2,end_carNum2);
警报(text_carNum);显示“ 20”,“ 5”,“ 55”
然后按以下方式返回它们:
return (text_carNum+', '+text_carNum2);
由于每个数组中最多可以有20个值,因此我尝试使用for循环来实现相同的功能,但是我似乎无法使其正常工作。
目前,我有:
for(var i=0;i<array.length;i++){
var start_carNum = array[i].indexOf('-') + 1;
var end_carNum = array[i].indexOf('-',start_carNum);
var text_carNum = array[i].substring(start_carNum,end_carNum);
return (text_carNum);
}
此警报(text_carNum)仅显示“ 10”,“ 22”,“ 12”。
关于如何使用for / each与上面相同的方式工作的任何想法?
(希望我已经解释得足够清楚了)
最佳答案
您在循环中调用return
,因此该函数在第一次迭代结束时退出。您必须将所有值连接到变量中:
var str_return = '';
for(var i=0;i<array.length;i++){
var start_carNum = array[i].indexOf('-') + 1;
var end_carNum = array[i].indexOf('-',start_carNum);
var text_carNum = array[i].substring(start_carNum,end_carNum);
str_return += '<span style="color:'+color+' !important;">'+text_carNum +'</span>';
}
return str_return;
顺便说一句,请注意,我更改了最后一行:
style
属性在颜色之后被关闭(双引号),必须在!important
之后关闭。