javascript数组。将连续的值添加到新数组中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript数组。将连续的值添加到新数组中相关的知识,希望对你有一定的参考价值。
我有这个数组= [“ john”,“ mike”,“ george”,55,“ hello”,344,“ goodmorning”]并且我想使用这个:[“ johnmikegeorge”,55,“ hello”,344,“ goodmorning”]。我想要有连续的字符串将它们组合成一个的地方。
var s = ""
var new_data = []
var pin = ["john", "mike", "george", 55, "hello", 344, "goodmorning"]
for (let i = 0; i < pin.length; i++) {
if (typeof pin[i] === "string") {
s = s + pin[i]
new_data.push(s)
} else {
s = ""
new_data.push(pin[i])
}
}
console.log(new_data)
在以前的代码中,我采用此[“ john”,“ johnmike”,“ johnmikegeorge”,55,“ hello”,344,“ goodmorning”]]
答案
您可以根据当前i
,当前typeof
和先前的i
的typeof
来就地修改数组:
var s = ""
var pin = ["john", "mike", "george", 55, "hello", 344, "goodmorning"]
for (let i = 0; i < pin.length; i++) {
if (i > 0 && typeof pin[i-1] === "string" && typeof pin[i] === "string") {
pin[i-1] = pin[i-1] + pin[i];
pin.splice(i, 1);
--i;
}
}
console.log(pin)
另一答案
尝试这个?
var s = ""
var new_data = []
var pin = ["john", "mike", "george", 55, "hello", 344, "goodmorning"]
for (let i = 0; i < pin.length; i++) {
if (typeof pin[i] === "string") {
s = s + pin[i]
//new_data.push(s) -> it pushed every time
} else {
if (s.length) {new_data.push(s)} // this goes here
s = ""
new_data.push(pin[i])
}
}
console.log(new_data)
以上是关于javascript数组。将连续的值添加到新数组中的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:将数组选择到新数组中(如 C# Select)
Javascript将数组添加到数组对象 - 问题总是推送相同的值