Javascript 数组推送函数向数组中添加一个或多个空索引 函数间距(num){ var a=[]; var aToStr=“”; 对于(i=0;i
From: 找到分隔符后,将从字符串中删除分隔符,并在数组中返回子字符串 错误说明:Javascript 数组推送函数向数组中添加一个或多个空索引 函数间距(num){ var a=[]; var aToStr=“”; 对于(i=0;i,javascript,arrays,split,push,Javascript,Arrays,Split,Push,From: 找到分隔符后,将从字符串中删除分隔符,并在数组中返回子字符串 错误说明: 使用拆分开始搜索,首先查找& function spacing(num){ var a=[]; var aToStr=""; for(i=0;i<num;i++) { a.push(" ") } for(i=0;i<a.length;i++) { aToStr=a[i]+aToStr; } //
拆分开始搜索
,首先查找&
function spacing(num){
var a=[];
var aToStr="";
for(i=0;i<num;i++) {
a.push(" ")
}
for(i=0;i<a.length;i++) {
aToStr=a[i]+aToStr;
}
// alert(a.length);result is 5 here
// alert(aToStr.split("&").length);//here result is 6 and when printed to screen theres an empty index
return aToStr;
}
     
// & found and removed, resulting in ' '
// returnArrForSplit = ['']
nbsp    
// & found and removed, everything before pushed to returnArrForSplit, 'nbsp'
// returnArrForSplit = ['', nbsp]
nbsp   
// & found and removed, resulting in 'nbsp'
// returnArrForSplit = ['', nbsp, nbsp]
nbsp  
// & found and removed, resulting in 'nbsp'
// returnArrForSplit = ['', nbsp, nbsp, nbsp]
nbsp
nbsp
nbsp 
// & found and removed, resulting in 'nbsp'
// returnArrForSplit = ['', nbsp, nbsp, nbsp, nbsp]
函数间距(num){
var a=[];
var aToStr=“”;
对于(i=0;i首先,您的问题应简化为:
为什么
是3而不是2
或
为什么
是2而不是0吗
对于上一个版本,答案是JavaScript认为您有2个空字符串(”
):其中一个在分隔符之前,另一个在分隔符之后。为什么?这就是他们决定实现此函数的方式=>只是一个决定。在Java中,类似的尝试将返回0
如果您认为这很奇怪,请注意“a”.split(“b”).length
返回1
因此,JavaScript认为,answer=1+numberofappearancesfortheseparator
如果你有“x-x-x”,你有2个分隔符,但有3个。这是一个预期的行为。aToStr
是一个字符串,而不是数组,所以当我设置一个.push(“ >)时,你不能移动它用一个空格,然后用空格分开,它会返回一个索引是的,我现在明白了,它会添加到结尾,因为结尾是+空格,谢谢你的帮助
nbsp
// added as last substring
// returnArrForSplit = ['', nbsp, nbsp, nbsp, nbsp, nbsp]
returnArrForSplit.shift()
// removes unwanted empty string.
function spacing(num){
var a=[];
var aToStr="";
for(i=0;i<num;i++) {
a.push(" ")
}
for(i=0;i<a.length;i++) {
aToStr=a[i]+aToStr;
}
return aToStr;
}
var spaces = spacing(5);
// "     "
spaces = spaces.split('&');
// ["", "nbsp", "nbsp", "nbsp", "nbsp", "nbsp"]
spaces.shift() // returns ''
// spaces is ["nbsp", "nbsp", "nbsp", "nbsp", "nbsp"]
"  ".split("&").length
"&".split("&").length