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和先前的itypeof来就地修改数组:

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数组

React-native 将渲染数组中的值插入到新数组中

Javascript:将数组选择到新数组中(如 C# Select)

Javascript将数组添加到数组对象 - 问题总是推送相同的值

C#如何在不知道新数组长度的情况下将数组中的值保存到新数组中

如何在javascript中将一个数组中的值添加到另一个数组