Javascript自动增量数组
Posted
技术标签:
【中文标题】Javascript自动增量数组【英文标题】:Javascript Auto Increment Array 【发布时间】:2019-02-14 03:39:51 【问题描述】:有没有像在 php 中那样自动增加 javascript 数组的速记方法?
PHP 示例:
$myArray=[];
$myArray[] = [ 'item1' , 'item2' ];
$myArray[] = [ 'item3' , 'item4' ];
JS 示例:
let myArray = [];
myArray[ myArray.length ] = [ 'item1' , 'item2' ];
myArray[ myArray.length ] = [ 'item3' , 'item4 '];
//or
myArray.push( [ 'item1' , 'item2' ] );
myArray.push( [ 'item3' , 'item4' ] );
不使用 myArray.length 或 myArray.push()
【问题讨论】:
不,.push 是最短/最干净的方法 Javascript push() shorthand?的可能重复 【参考方案1】:当然有办法做同样的事情;它甚至有类似的结构:
let arr = ['a', 'b'];
arr = arr.concat([['c', 'd']]);//['a', 'b', ['c', 'd']]
PHP:
<?php
$arr = ["a", "b"];
$arr[] = ["c", "d"];
print_r($arr);
?>
Array
(
[0] => a
[1] => b
[2] => Array
(
[0] => c
[1] => d
)
)
【讨论】:
不过,与 OP 的示例相比,这会产生不同的结果。这将创建一个一维数组,而 OP 的示例将创建一个多维数组。【参考方案2】:这是 ES6 的方式,使用扩展运算符
const arr1 = [1,2,3];
const arr2 = [3,4,5];
const arr3 = [...arr1, ...arr2]; // arr3 ==> [1,2,3,3,4,5]
或
只需使用concat
方法
const arr1 = [1,2,3];
const arr2 = [3,4,5];
const arr3 = arr1.concat(arr2); // arr3 ==> [1,2,3,3,4,5]
【讨论】:
【参考方案3】:除了给定的答案之外,您还可以使用具有很大价值的 Array#splice
将值添加到数组的末尾。
var array = [];
array.splice(Infinity, 0, ...['item1', 'item2']);
array.splice(Infinity, 0, ...['item3', 'item4']);
console.log(array);
【讨论】:
以上是关于Javascript自动增量数组的主要内容,如果未能解决你的问题,请参考以下文章