最近实现一个功能,需要在js中在一个数组中嵌套另一个数组,即把arr1和arr2插入arr中,使得arr从[]变为arr=[['n1','n2','n3'],['n4','n5','n6']];如下所示:
var arr1 = ['n1','n2','n3'];
var arr2 = ['n4','n5','n6'];
var arr = [];
arr=[['n1','n2','n3'],['n4','n5','n6']];
由于对页面上输出的数据格式有一些错误的认识,在写的时候浪费了一些时间,在此记录一下。
一开始的写法是这样的:
<!DOCTYPE>
<html>
<body>
<div id="test"></div>
</body>
</html>
<script>
var arr1 = ['n1','n2','n3'];
var arr2 = ['n4','n5','n6'];
var arr=[];
arr.push(arr1);
arr.push(arr2);
document.getElementById("test").innerHTML = arr;
</script>
我想得到的输出结果是下面这样的:
[["n1","n2","n3"],["n4","n5","n6"]]
输出结果是这样的:
n1,n2,n3,n4,n5,n6
原因:arr通过innerHTML在页面上显示的时候转为String类型的数据了。
- 使用JSON.stringify()方法转一下就可以在页面上看到数组形式的输出。
<!DOCTYPE>
<html>
<body>
<div id="test"></div>
</body>
</html>
<script>
var arr1 = ['n1','n2','n3'];
var arr2 = ['n4','n5','n6'];
var arr=[];
arr.push(arr1);
arr.push(arr2);
// document.getElementById("test").innerHTML = arr;
document.getElementById("test").innerHTML = JSON.stringify(arr);
console.log(arr);
</script>
输出:
[["n1","n2","n3"],["n4","n5","n6"]]
- 或者直接使用console.log()也可以在控制台上看到数组类型的输出。
总的来说,实现数组中嵌套另一个数组的方法就是Array.push()方法,之前是我对数据格式没有进行转换,所以在页面上将数组类型的数据输出成了字符串类型的数据,还误以为Array.push()方法不能实现,纠结了一些时间,不知道有没有和我一样的小白有这个误解,因此和大家分享一下嘻嘻(●'◡'●)。