遍历数组forEach
var fruits = ['Apple', 'Banana'];
fruits.forEach(function(item,index,fruits) {
console.log(item,index);
})
// Apple 0
// Banana 1
添加元素到数组的末尾
var newArray = fruits.push('Orange');
// ["Apple", "Banana", "Orange"]
添加元素到数组的头部
var newArray = fruits.unshift('Orange');
// ["Orange","Apple", "Banana"]
删除数组末尾的元素
var first = fruits.pop();
删除数组首个元素
var first = fruits.shift();
找出某个元素在数组中的索引
fruits.push('Mango');
// ["Strawberry", "Banana", "Mango"]
var pos = fruits.indexOf('Banana');
// 1
通过索引删除某个元素
var removedItem = fruits.splice(pos,1);
// ["Strawberry", "Mango"]
从一个索引位置删除多个元素
var vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot']; console.log(vegetables); // ["Cabbage", "Turnip", "Radish", "Carrot"] var pos = 1, n = 2; var removedItems = vegetables.splice(pos, n); // this is how to remove items, n defines the number of items to be removed, // from that position(pos) onward to the end of array. console.log(vegetables); // ["Cabbage", "Carrot"] (the original array is changed) console.log(removedItems); // ["Turnip", "Radish"]
复制一个数组
var shallowCopy = fruits.slice()
属性
Array.length
Array 构造函数的length属性,其值为(注意该属性为静态属性,不是数组实例的length属性)
get Array[@@species]返回Array构造函数
Array.prototype 通过数组的原型对象可以为所有数组添加属性
方法
Array.from() 从数组对象或者可迭代对象中创建一个新的数组实例。Array.isArray()用来判断某个变量是否是一个数组。
Array.of()根据一组参数来创建新的数组实例,支持任意的参数数量和类型。
数组实例
所有数组实例都会从 Array.prototype 继承属性和方法。修改Array的原型会影响到所有的数组实例。
属性
Array.prototype.constructor 所有的数组实例都继承了这个属性,他的值就是Array,表明了所有的数组都是由Array构造出来的。
Array.prototype.length 上面说了,因为 Array.prototype 也是个数组,所以他也有 length属性,这个值为0,因为他是个空数组。
方法
修改器方法
这些方法会改变数组:
Array.prototype.copyWithin()在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。
Array.prototype.fill() 将数组中指定区间的所有元素的值,都替换成某个固定的值。
Array.prototype.pop() 删除数组的最后一个元素,并返回这个元素。
Array.prototype.push() 在数组的某位增加一个或多个元素,并返回数组的新长度
Array.prototype.reverse() 颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
Array.prototype.shift()删除数组的第一个元素,并返回这个元素。
Array.prototype.sort()对数组元素进行排序,并返回当前数组。
Array.prototype.splice()在任意的位置给数组添加或删除任意个元素。
Array.prototype.unshift()在数组的开头增加一个或多个元素,并返回数组的新长度。
分割字符串split
限制返回值中的分割元素数量
下例中,split
查找字符串中的 0 或多个空格,并返回找到的前 3 个分割元素(splits)。
var myString = "Hello World. How are you doing?";
var splits = myString.split(" ", 3);
console.log(splits);
//
["Hello", "World.", "How"]
靠正则来分割使结果中包含分隔块
如果 separator
包含捕获括号(capturing parentheses),则其匹配结果将会包含在返回的数组中。
var myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(d)/); console.log(splits);
//[ "Hello ", "1", " word. Sentence number ", "2", "." ]
用split()来颠倒字符串顺序const str = 'asdfghjkl';
const strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa'