如何拆分字符串,然后将某些内容推送到结果数组中?

时间:2016-11-27 14:16:42

标签: javascript arrays

我有这个字符串:

var fruits = "banana,apple";

我正在尝试通过将其转换为数组然后推送新的水果来添加水果:

var newFruit = "orange";
fruits
  .split(",")
  .push(newFruit);

但这不起作用,因为fruits.split(",")似乎没有返回“正常”数组,即我无法对其执行push()

这有可能吗?

3 个答案:

答案 0 :(得分:3)

split会返回正常数组。您已成功呼叫push

问题是您丢弃了阵列,因此无法对其进行任何进一步的操作。

由于push没有返回数组本身,因此在调用push后,您无法再使用该数组。

concat返回一个包含其他值的新数组,但之后您仍需要对该数组执行某些操作。



var fruits = "banana,apple";
var newFruit = "orange";
var myArray = fruits
  .split(",")
  .concat(newFruit);
console.log(myArray);




答案 1 :(得分:1)

Array.prototype.push返回数组的新长度:

  

返回值

     

方法所针对的对象的新长度属性   调用。

     

MDN Source

此外,您没有存储新值。如果您想使用push,请按以下步骤操作:

var fruits = "apple,banana";
var newFruits = fruits.split(","); // Store the new array
newFruits.push("orange"); // Add the new item

console.log(newFruits);

如果您想在一行中执行此操作,可以使用concat

var fruits = "apple,banana";
var newFruits = fruits
      .split(",")         // Convert string to array
      .concat("orange");  // Create a new array joined with value

console.log(newFruits);

答案 2 :(得分:0)

push返回数组的新长度,因为你没有保存它然后你看不到新数组(推后) 尝试分两行:

newFruits = fruits.split(",");
newFruits.push(newFruit);