【发布时间】:2020-04-29 21:22:51
【问题描述】:
对于一个项目,我必须对这个包含字符串和数字的数组进行排序。该字符串用作指示该数字应存储到哪个数组中。
let myArray = [22, 'talk', 31, 'perfo', 35, 'init', 42, 'talk']
let talk = []
let perfo = []
let init = []
for (let i = 0; i < myArray.length; i + 2) {
if (myArray[i + 1] == 'talk') {
talk.push(myArray[i])
} else if (myArray[i + 1] == 'perfo') {
perfo.push(myArray[i])
} else if (myArray[i + 1] == 'init') {
init.push(myArray[i])
} else {}
}
预期结果:
talk [22, 42], perfo [35], init [42]
但不知何故,它似乎甚至没有通过 for 循环。
【问题讨论】:
-
是否有某些原因为什么每次迭代都将
i增加 2? -
您的代码工作正常,除了一个小错误 - 使用
i += 2增加i。 -
这不叫“排序”,而是“分组”或“拆分”。
-
另外去掉多余的
else {}。 -
谢谢@OriDrori 就是这样
标签: javascript arrays sorting for-loop