数组是什么?
数组通常被描述为“像列表一样的对象”; 简单来说,数组是一个包含了多个值的对象。
数组对象可以存储在变量中,并且能用和其他任何类型的值完全相同的方式处理,区别在于我们可以单独访问列表中的每个值,并使用列表执行一些有用和高效的操作,如循环 - 它对数组中的每个元素都执行相同的操作。
创建数组
let shopping = ['bread', 'milk', 'cheese', 'hummus', 'noodles']; shopping;
访问和修改数组元素
// 通过下标访问 console.log(shopping[0]); // 修改数组元素 shopping[0] = 'tahini';
获取数组长度
sequence.length;
字符串和数组之间的转换
let myData = 'Manchester,London,Liverpool,Birmingham,Leeds,Carlisle'; let myArray = myData.split(','); // 尝试找到新数组的长度,并从中检索一些项目: myArray.length; myArray[0]; // the first item in the array myArray[1]; // the second item in the array myArray[myArray.length-1]; // the last item in the array
数组转字符串
您也可以使用 join()
方法进行相反的操作。 尝试以下:
let myNewString = myArray.join(','); myNewString;
将数组转换为字符串的另一种方法是使用 toString()
方法。 toString()
可以比 join()
更简单,因为它不需要一个参数,但更有限制。 使用 join()
可以指定不同的分隔符
let dogNames = ["Rocket","Flash","Bella","Slugger"]; dogNames.toString(); //Rocket,Flash,Bella,Slugger
添加和删除数组项
要在数组末尾添加或删除一个项目,我们可以使用 push()
和 pop()
。
push方法调用完成时,将返回数组的新长度
var newLength = myArray.push('Bristol');
pop方法调用完成时,将返回已删除的项目
let removedItem = myArray.pop();
unshift()
和 shift()
从功能上与 push()
和 pop()
完全相同,只是它们分别作用于数组的开始,而不是结尾。
进一步了解数组对象(Array object)
创建数组
// 推荐使用 var arr = [element0, element1, ..., elementN]; // 不推荐 var arr = new Array(element0, element1, ..., elementN); var arr = Array(element0, element1, ..., elementN);
译者注: var arr=[4] 和 var arr=new Array(4)是不等效的,
使用字面值(literal)的方式应该不仅仅是便捷,同时也不易踩坑
为了创建一个长度不为0,但是又没有任何元素的数组
var arr = new Array(arrayLength); var arr = Array(arrayLength); // 这样有同样的效果 var arr = []; arr.length = arrayLength;
这里倒是推荐使用第一种.
遍历数组(interating over array)
var colors = ['red', 'green', 'blue']; for (var i = 0; i < colors.length; i++) { console.log(colors[i]); } // 尼玛此时i居然还能访问 // 所以推荐一下写法, 所有`var`变量的声明写道函数的顶部. `let`则可以这么写.
多维数组(multi-dimensional arrays)
数组是可以嵌套的, 这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用JavaScript数组的这个特性, 可以创建多维数组。
以下代码创建了一个二维数组。
var a = new Array(4); for (i = 0; i < 4; i++) { a[i] = new Array(4); for (j = 0; j < 4; j++) { a[i][j] = "[" + i + "," + j + "]"; } }
参考
https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Arrays