在这种情况下热到将字符串拆分为数组?

时间:2017-08-04 10:11:29

标签: javascript

我得到二十个youtube id,我想得到第一个和第二个id。

这样的20个数据:

/watch?v=2ZBaOvX6ktU,/watch?v=7bj15kbLOZU,/watch?v=UYh1yxSi2UA,/watch?v=72qeHHapFF8,/watch?v=vkmvqhArZ8M,/watch?v=adadLSFLAd4,/watch?v=MkOYvjq50c8,/watch?v=h8gcqI0s9hM,/watch?v=g_olO2htTi0,/watch?v=vaWSeYdGqjM,/watch?v=ZDak5qhlLoU,/watch?v=68Uo_yn_ssc,/watch?v=sIaoXv69IJA,/watch?v=asiDjf546W8,/watch?v=bfxikjXaki4,/watch?v=wRvG6ZjFD28,/watch?v=0Kj3XhLqAQM,/watch?v=nN42e8AM4R4,/watch?v=ST0EZqRdQKI

但是当我尝试将字符串拆分为数组时,它会显示TypeError: undefined is not a constructo

我不知道为什么会有任何建议值得赞赏。

这是我的代码:

var youtubeId = [];

youtubeId[idCount] = this.evaluate(getYoutubeId);

console.log(youtubeId[idCount]);// 20 data

var sourceId = youtubeId[idCount];

var id = [];

id = sourceId.split(",");// this code show error

console.log('\n' + id + '\n');

2 个答案:

答案 0 :(得分:2)

如果20 youtube id在一行中,并且您想打印2 youtube id,则代码下面的代码应该适合您。

在这里,我首先用逗号分割你的整个字符串,所以我得到19个字符串,然后我再次用等号(=)分割,所以我得到两个部分,其中第二个是你的id。

这将打印ID,如2ZBaOvX6ktU,然后在下一行打印7bj15kbLOZU。

var string = "/watch?v=2ZBaOvX6ktU,/watch?v=7bj15kbLOZU,/watch?v=UYh1yxSi2UA,/watch?v=72qeHHapFF8,/watch?v=vkmvqhArZ8M,/watch?v=adadLSFLAd4,/watch?v=MkOYvjq50c8,/watch?v=h8gcqI0s9hM,/watch?v=g_olO2htTi0,/watch?v=vaWSeYdGqjM,/watch?v=ZDak5qhlLoU,/watch?v=68Uo_yn_ssc,/watch?v=sIaoXv69IJA,/watch?v=asiDjf546W8,/watch?v=bfxikjXaki4,/watch?v=wRvG6ZjFD28,/watch?v=0Kj3XhLqAQM,/watch?v=nN42e8AM4R4,/watch?v=ST0EZqRdQKI";
var arr = string.split(/[\s,]+/);
    console.log(arr[0].split("=")[1]);
    console.log(arr[1].split("=")[1]);

如果你想打印“/ watch?v = 2ZBaOvX6ktU”,那么你可以编写console.log(arr [i]);

答案 1 :(得分:0)

如果20个youtube id在一个字符串中,您可以按如下方式获得前两个ID。

var str = //your 20 ids string here
var res = str.split(",");
alert("first",res[0]);
alert("second",res[1]);