为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript:拆分不一致

JavaScript:拆分不一致

慕斯王 2023-08-10 15:51:08
我在 JavaScript 中使用 split() 方法得到了一个非常令人困惑的结果。var winning = "1234".split(" ");var entry1 = "23".split(" ");var entry2 = "123".split(" ");var entry3 = "55".split(" ");var entry4 = "8888".split(" ");var entry5 = "21".split(" ");var counter1, counter2, counter3, counter4, counter5;counter1 = 3;counter2 = 3;counter3 = 3;counter4 = 3;counter5 = 3;for(var i = entry1.length - 1; i >= 0; i--){    console.log(winning[counter1] + "===" + entry1[i]);    counter1 -= 1}for(var i = entry2.length - 1; i >= 0; i--){    console.log(winning[counter2] + "===" + entry2[i]);    counter2 -= 1}for(var i = entry3.length - 1; i >= 0; i--){    console.log(winning[counter3] + "===" + entry3[i]);    counter3 -= 1}for(var i = entry4.length - 1; i >= 0; i--){    console.log(winning[counter4] + "===" + entry4[i]);    counter4 -= 1}for(var i = entry5.length - 1; i >= 0; i--){    console.log(winning[counter5] + "===" + entry5[i]);    counter5 -= 1}当我运行这个简单的代码时,使用 split 获得的获胜数组在任何索引中均未定义,但 split 方法生成的其他数组似乎工作正常。只是为什么?这是什么矛盾?
查看完整描述

1 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

看这个:


var winning = "1234".split(" ");

var entry1 = "23".split(" ");

var entry2 = "123".split(" ");

var entry3 = "55".split(" ");

var entry4 = "8888".split(" ");

var entry5 = "21".split(" ");


console.dir(winning)

console.dir(entry1)

console.dir(entry2)

console.dir(entry3)

console.dir(entry4)

console.dir(entry5)


数组中只有一个元素winning,因此当您尝试获取具有索引的元素时,3您会得到undefined. 其他数组也有一个元素 - 您循环遍历它们并打印该元素。我想你想这样做:


var winning = "1234".split("");

而不是这个:


var winning = "1234".split(" ");

因为这些字符串中没有空格字符。


查看完整回答
反对 回复 2023-08-10
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信