我有这个字符串:
var fruits = "banana,apple";
我正在尝试通过将其转换为数组然后推送新的水果来添加水果:
var newFruit = "orange";
fruits
.split(",")
.push(newFruit);
但这不起作用,因为fruits.split(",")
似乎没有返回“正常”数组,即我无法对其执行push()
。
这有可能吗?
答案 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
返回数组的新长度:
返回值
方法所针对的对象的新长度属性 调用。
此外,您没有存储新值。如果您想使用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);