JS数组Array
数组的创建方式(两种)
使用new关键字+Array构造函数创建数组(new操作符可以省略)。
var colors = new Array();
var colors = Array();
`
构造函数传递该数量,而该数量会自动成为length属性的值。
var colors = new Array(20);
console.log(colors.length);//创建了一个长度为20,内容为空的数组
数组字面量由一对包含数组项的方括号表示("[]"),多个数组项之间以逗号隔开。在读取和设置数组的值时,要使用方括号并提供相应的基于0的数字索引(位置)。
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
console.log(colors.length); //3
console.log(colors[0]); //显示第一项 "red"
colors[2] = "black"; //修改第三项
colors[3] = "brown"; //新增第四项
var colors = []; //创建一个空数组
console.log(colors.length); //0
数组的length属性
数组的length属性的特点:不是只读的。也就是说通过设置这个属性,可以从数组的末尾移除或向数组中添加新项
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors.length = 2; //设置数组长度为2
console.log(colors[2]); //undefined
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors[colors.length] = "black"; //(在位置3)添加一种颜色
colors[colors.length] = "brown"; //(在位置4)添加一种颜色
`
检测数组
1.使用instanceof操作符
var a = [1]
console.log((a)instanceof Array) //true
}
2.Array.isArray()方法
var a = [1]
console.log(Array.isArray(a)) //true
}
属性:打印出true(真) \ false(假)
`
转换方法
所有对象都具有toLocaleString()、toString和valueof()方法。
1·toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串;
var arr = [21, 5, 67, 77, 33];
console.log(arr.toString()); //21,5, 67, 77, 33
2·valueOf()返回的还是数组;
var arr = [21, 5, 67, 77, 33];
console.log(arr.toString()); // [21, 5, 67, 77, 33]
3·toLocaleString()方法也经常返回与toString和valueof()方法相同的值,
join(分隔符)数组转字符串
var arr = [21,5,67,77,33];
console.log(arr.join('')); //215677733
·
栈方法 (后进先出)
push()
接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.push(1)); // 9 返回修改后的长度
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 1]
pop
从数组的末尾移除最后一项,减少数组的length值,然后返回被移除的项。
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.pop()); // 8 返回移除的值
console.log(arr); // [1,2,3,4,5,6,7] 移除最后一项
·
队列方法 (先进先出)
unshift()方法
在数组的前端添加任意个项并返回新数组的长度
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.unshift(2)); // 9 返回新数组的长度
console.log(arr); // [2,1,2,3,4,5,6,7,8]
shift()方法:
从数组的前端移除第一项(也就是位置索引值为0),减少数组的length值,
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.shift()); // 1 把第一项移除
console.log(arr); // [2,3,4,5,6,7,8]
·
重排序方法
reverse()方法: (反转数组项的顺序)
var arr= [1,2,3,4,5,6,7,8]
console.log(arr.reverse()); // [8, 7, 6, 5, 4, 3, 2, 1]
sort()方法: 排序
sort()方法可以接收一个比较函数最为参数,以便指定哪个值位于前面。
var arr= [1,2,3,4,5,6,7,8]
arr.sort(function(a,b){
return b-a //return a-b; //升序 return b-a; //降序
})
console.log(arr)
reverse()和sort()方法的返回值都是经过排序后的数组(改变原数组)。
·
操作方法
ECMAScript为操作已经包含在数组中的元素提供了很多方法:
·concat()方法可以基于当前数组创建一个新数组。
· slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。
·splice()主要用途是向数组的中部插入元素,使用方式有3种。
concat() 方法
用于连接两个或多个数组
var arr1 = [1, 2];
var arr2 = [3, 4];
var arr4 = [5, 6];
var arr3 = arr1.concat(arr2,arr4); //逗号隔开
console.log(arr3)
slice()方法
可提取字符串或者数组的某个部分,并以新的字符串或数组返回被提取的部分。
var arr= [1,2,3,4,5,6,7,8]
var brr= arr.slice(1)
console.log(brr) // [2, 3, 4, 5, 6, 7, 8]
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
var arr= [1,2,3,4,5,6,7,8]
var brr= arr.slice(1,4)
console.log(brr) // [ 2, 3, 4]
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
splice()方法
用于插入、删除或替换数组的元素
splice中的删除功能:返回被删除数组元素
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.splice(3,2,1)) // [4, 5] (3)下标 (2)移除个数 (1)添加
console.log(arr) // [1, 2, 3, 1, 6, 7, 8]
位置方法
首次出现位置
indexOf()
返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位置
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.indexOf(3,1)) // 2
console.log(arr)
lastIndexOf()
返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索
var arr = [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.lastIndexOf(2,5)) // 1
console.log(arr)