如何在JavaScript中将对象(如字符串或数字)附加到数组中?
当前回答
如果您知道最高索引(例如存储在变量“i”中),那么您可以
myArray[i + 1] = someValue;
然而,如果你不知道,那么你可以使用
myArray.push(someValue);
如其他答案所示,或者您可以使用
myArray[myArray.length] = someValue;
注意,数组是从零开始的,因此.length返回最高索引加1。
还要注意,您不必按顺序添加,实际上可以跳过值,如
myArray[myArray.length + 1000] = someValue;
在这种情况下,介于两者之间的值将具有未定义的值。
因此,当在JavaScript中循环以验证某个值是否确实存在时,这是一个很好的做法。
这可以通过以下方式实现:
if(myArray[i] === "undefined"){ continue; }
如果您确定数组中没有任何零,则可以执行以下操作:
if(!myArray[i]){ continue; }
当然,在这种情况下,请确保不要使用myArray[i]作为条件(正如互联网上的一些人根据结尾所建议的,一旦i大于最高索引,它将返回undefined,其结果为false)。
其他回答
如果要附加两个数组-
var a = ['a', 'b'];
var b = ['c', 'd'];
那么您可以使用:
var c = a.concat(b);
如果您想将记录g添加到数组(var a=[]),那么可以使用:
a.push('g');
如果要将单个值附加到数组中,只需使用push方法。它将在数组末尾添加一个新元素。
但是,如果您打算添加多个元素,请将这些元素存储在一个新数组中,并将第二个数组与第一个数组连接起来。。。无论你想怎样。
arr=['a','b','c'];
arr.push('d');
//now print the array in console.log and it will contain 'a','b','c','d' as elements.
console.log(array);
我们在JavaScript中没有Array的append函数,但我们有push和unshift。假设您有以下阵列:
var arr = [1, 2, 3, 4, 5];
我们喜欢向这个数组附加一个值。我们可以执行arr.push(6),它将在数组末尾添加6:
arr.push(6); // Returns [1, 2, 3, 4, 5, 6];
我们还可以使用unshift,看看我们如何应用它:
arr.unshift(0); // Returns [0, 1, 2, 3, 4, 5];
它们是向数组添加或追加新值的主要函数。
现在大多数浏览器都支持ECMAScript 5(ES5)标准的JavaScript,您可以使用apply()将array1附加到array2。
var array1 = [3, 4, 5];
var array2 = [1, 2];
Array.prototype.push.apply(array2, array1);
console.log(array2); // [1, 2, 3, 4, 5]
带有ECMAScript 6(ES6)标准的JavaScript,Chrome、Firefox、Internet Explorer和Edge支持该标准,您可以使用扩展运算符:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
排列运算符将替换array2.push(…array1);带有阵列2.推(3,4,5);当浏览器思考逻辑时。
加分
如果要创建另一个变量来存储两个数组中的所有项,可以执行以下操作:
ES5 var combinedArray=array1.concat(array2);
ES6常量组合数组=[…array1,…array2]
扩展运算符(…)用于扩展集合中的所有项目。
附加单个项目
要将单个项附加到数组,请使用array对象提供的push()方法:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()对原始数组进行变异。
要创建新数组,请使用concat()array方法:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
请注意,concat()实际上并没有向数组中添加项,而是创建了一个新数组,您可以将其分配给另一个变量,或重新分配给原始数组(声明为let,因为无法重新分配常量):
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
附加多个项目
要将多个项附加到数组中,可以通过使用多个参数调用push():
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
您还可以使用前面看到的concat()方法,传递一个用逗号分隔的项目列表:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
或阵列:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
请记住,如前所述,此方法不会改变原始数组,但会返回一个新数组。
最初发布于
推荐文章
- 在数组中获取所有选中的复选框
- 如何为Firebase构建云函数,以便从多个文件部署多个函数?
- 如何发送推送通知到web浏览器?
- AngularJS:工厂和服务?
- js:将一个组件包装成另一个组件
- 父ng-repeat从子ng-repeat的访问索引
- 如何读一个文本文件到一个列表或数组与Python
- JSHint和jQuery: '$'没有定义
- 模仿JavaScript中的集合?
- 如何在Python中将十六进制字符串转换为字节?
- 用JavaScript验证电话号码
- 如何在HTML5中改变视频的播放速度?
- 谷歌地图API v3:我可以setZoom后fitBounds?
- ES6/2015中的null安全属性访问(和条件赋值)
- 与push()相反;