数组:有序的数据集合
数组方法
方法名 | 用途 |
---|---|
concat() | 连接两个或更多的数组,并返回结果。 |
join() | 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 |
pop() | 删除并返回数组的最后一个元素 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reverse() | 颠倒数组中元素的顺序。 |
shift() | 删除并返回数组的第一个元素 |
slice() | 从某个已有的数组返回选定的元素 |
sort() | 对数组的元素进行排序 |
splice() | 删除元素,并向数组添加新元素。 |
toSource() | 返回该对象的源代码。 |
toString() | 把数组转换为字符串,并返回结果。 |
toLocaleString() | 把数组转换为本地数组,并返回结果。 |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
valueOf() | 返回数组对象的原始值 |
flat() | 数组降维,参数是要降的维度 |
//创建数组的方法
//字面量的方式 常用
var arr = [1,2,3,4]
console.log(arr)
//构造函数的方式
var arr1 = new Array(1,2,3,4,5)
console.log(arr1)
//用对象的方式来创建
var arr2 = Array(1,2,3,4,6)
console.log(arr2)
//用Arry.of来创建
var arr3 = Array.of(1,2,3,4,6,7)
console.log(arr3)
如果数组中只放一个元素时,构造器和对象方法不能实现想要的结果。
//创建数组的方法
//字面量的方式 常用
var arr = [1]
console.log(arr)
//构造函数的方式
var arr1 = new Array(1)
console.log(arr1)
//用对象的方式来创建
var arr2 = Array(1)
console.log(arr2)
//用Arry.of来创建
var arr3 = Array.of(1)
console.log(arr3)
// 通过数组下标的方式可以访问数组
var arr = [ 1,2,3,4,5]
console.log(arr[1],arr[2])
var arr = [ 1,2,3,4,5]
arr[5]=6
arr[6]=6
console.log(arr)
//也可以用push的方法来增添数组元素,也可以推入多个元素
var arr = [ 1,2,3,4,5]
arr.push(2)
console.log(arr)
1 直接规定数组长度来删除数组末尾的元素
2 splice方法可以删除数组中任意位置的元素 参数(第一个参数是要删除的下标,第二个参数是删除的位数,第三个参数是删除完要添加的参数
,也可以添加多个参数。)
var arr = [ 1,2,3,4,5]
arr.splice(1,1,4,3)
console.log(arr)
// for循环的方式来进行数组遍历
var arr = [ 1,2,3,4,5]
for (let i = 0 ;i < arr.length ;i++){
console.log(arr[i])
}
// for...of的方式进行数组遍历
console.log(for......of)
for (let ele of arr){
console.log(ele)
}
// forEach的参数是 (遍历的元素,元素的下标,原数组)
arr.forEach((ele , index ,self )=>{
console.log(ele,index,self)
})
栈模式是先进后出的模式 在栈中压入一个元素可以用push来推进去 。
pop可以拿取末尾元素 (会改变原数组)
var arr = [ 1,2,3,4,5]
arr.push(2)
console.log(arr)
var a = arr.pop()
console.log(a)
console.log(arr)
// 先进先出
//shift是移除第一位
var arr = [ 1,2,3,4,5]
arr.shift()
console.log(arr)
// unshift 可以在第一位添加一个或者多个元素
arr.unshift(1,1)
console.log(arr)
reverse 改变原数组 返回新数组
var arr = [ 1,2,3,4,5]
//数组反转
arr.reverse()
console.log(arr)
//字符串反转
var a = 'hello'
//split() 方法用于把一个字符串分割成字符串数组。
console.log( a.split(''))
//reverse()数组反转
console.log( a.split('').reverse())
//join()把数组中的所有元素转换为一个字符串
console.log( a.split('').reverse().join(''))
sort sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序
var arr = [9,1,4,7,8,3,5]
//这种方法只能在10以内正常排序 超过10的还需再定义函数
arr.sort()
console.log(arr)
concat 不会改变原数组,返回一个新的数组
var arr = [10, 1, 4, 7, 8, 3, 5]
var arr1 = [6, 6, 6]
var b = arr.concat(arr1)
console.log(arr)
console.log(arr1)
console.log(b)
slice 传一个参数就是代表删除一个 第二个参数代表结尾的索引
可以用负数来表示 -1表示最后一个(不改变原数组,返回一个新数组)
arr.slice(1,4) start(1包含) 和 end(4不包含) 参数来指定字符串提取的部分。
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.slice( 0,-1)
console.log(arr)
console.log(b)
map 数组 map(e=> e*2 ) 返回一个新数组
不会对原数组做出改变 map() 不会对空数组进行检测
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.map( e => e*2)
console.log(arr)
console.log(b)
reduce(a,b,c,d) 不会改变原数组
第一个a代表上一次计算的结果,
第二个b代表是当前遍历到的数组元素
第三个c代表是当前遍历到的索引
第四个d代表是数组的本身
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.reduce((a,b)=>a+b )
console.log(arr)
console.log(b)
filter 返回的是符合条件的数组
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.filter(e => e > 4)
console.log(arr)
console.log(b)
返回值是布尔值
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.every(e => e >2 )
console.log(arr)
console.log(b) // false
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false
var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.some(e => e >2 )
console.log(arr)
console.log(b) // true
var arr = [10, 1, 4, 7, 8, 3, 5]
var [, b] = arr // 即使第一位元素是空的 10也是赋给他的
console.log(arr)
console.log(b) // 1
function info() {
let name = "xiaoming";
let age = "22";
return [name, age]
}
var [name, age] = info();
console.log(name, age)
var arr = [10, 1, 4, 7, 8, 3, 5]
var [a, b, ...c] = arr //...展开符
console.log(a, b, c)
// 函数在接收多个形参时也可以用...的方式来接收多个参数
function info(...b) {
console.log(b) // [1,2,3,4]
}
info(1, 2, 3, 4)
const nested = [1, 2, 3, [4, 5, [6, 7], 8, 9]]
// 这里的数组是一个多维度的数组
console.log(nested.flat(2))