如何将数组的一部分转移到另一个? Javascript

问题描述:

我一直试图将spl[i]转移到spp[k],如果它有(。不过,我得到:如何将数组的一部分转移到另一个? Javascript

Cannot set property 'k' of undefined 

可我甚至设置spp[i]spl[i]?

注:该代码段只记录在控制台上。

var spl= ['Mozilla/5.0 ','(Windows NT 10.0; Win64; X64)',' AppleWebKit/537.36 ','(KHTML& Like Gecko)',' Chrome/58.0.3029.96 Safari/537.36'] 
var spp= [a,b]; 
var l= 0, k= 0; 
while(typeof spl[l]== 'string'){ 
    if (spl[l].includes('(')){ 
     spp[k]=spl[l]; 
     ++k; 
    } 
    ++l; 
} 
console.log('spp='+spp); 

我要属为[ '(Windows NT的10.0; Win64上,X64)', '(KHTML &像壁虎)'] 注意&是一个临时的逗号作为的ToString使用逗号。

+2

你的第一个代码是不正确的。 'spl'不是数组 – Weedoze

+0

是的,我忘记了这一点;但是,它在修复后仍然不起作用,如片段中所示。 –

+0

@Zekrom_Vale你的第一个片段工作正常:[JSFiddle](https://jsfiddle.net/agmsovmx/)。对于代码片段2,我建议使用更小的函数来使代码更具可重用性 – Rajesh

定义数组作为

var spl= ['Mozilla/5.0 ','(Windows NT 10.0; Win64; X64)',' AppleWebKit/537.36 ','(KHTML& Like Gecko)',' Chrome/58.0.3029.96 Safari/537.36'] 
+0

')的字符串,我认为这只是我的例子中的一个错误,因为我已经测试过了,他们的spl是一个数组,我只是忘记了数组需要[]'我也是js的新手 –

如果我得到你,你只是想绕到pharenthesis如果没有的arent任何:

console.log(
 
    ["a", "b", "(c)"].map(el => el.substr(0, 1) === "(" ? el : "(" + el + ")") 
 
) 
 
//["(a)","(b)","(c)"]

http://jsbin.com/reluveroyi/edit?console

+0

请注意编辑器中的''图标,你可以把* HTML/CSS/JS *代码放到可执行文件中 – Rajesh

+0

@Rajesh我不能。片段不能在移动设备上使用*,我会在他们实施它时做,但我不会切换到我的电脑只是为了在任何地方添加片段... –

显然,来自先前值的字符串不是分裂的。为了避免错误,你不应该使用string.split('chr'),而不是你应该做的string= string.split('chr')

spl= spl.toString(); 
//console.log(spl); 
spl= spl.split(","); 
var spp= ['a','b']; 
var l= 0, k= 0; 
while(typeof spl[l]== 'string'){ 
    if (spl[l].includes('(')=== true){ 
     spp[k]= spl[l]; 
     spl[l]= "()"; 
     ++k; 
    } 
    ++l; 
}