js数组属性与方法实操理解
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var arr1 = [1,1,2,3,4,100]
console.log(arr1.__proto__) // [constructor: ƒ, concat: ƒ, pop: ƒ, push: ƒ, shift: ƒ, …]
console.log(arr1.concat(1)) // 合并数组,返回合并后的数组 [1, 1, 2, 3, 4, 100, 1]
console.log(arr1.pop()) // 删除最后一个元素,返回删除元素 100
console.log(arr1.push(100)) // push返回添加后的数组长度 6
console.log(arr1.copyWithin()) // [1, 1, 2, 3, 4, 100]
console.log(arr1.entries().next().value) // 返回数组,需要调用next()方法拿出数据 [0, 1]
console.log(arr1.every(x=>x<5)) // 数组中所有值都要满足条件,返回布尔值 false false
//console.log(arr1.fill(1)) // 对数组以指定值进行填充,改变原数组 [1,1,1,1,1,1]
console.log(arr1.filter(x=>x<5)) // 过滤数组中的值,返回满足条件的数组,不改变原数组,无返回[] [1, 1, 2, 3, 4]
console.log(arr1.find(x=>x>5)) // 返回数组中满足筛选条件的第一个值,无返回undefined 100
console.log(arr1.findIndex(x=>x<5)) // 返回数组中满足筛选条件的第一个值下标,无返回-1 0
console.log(arr1.includes(100)) // 判断数组中是否包含参数值,返回布尔值 true
console.log(arr1.indexOf(5)) // 返回参数在数组中第一次出现的位置,无返回-1
console.log(arr1.join('')) // 数组转为字符串,以指定分隔符,默认, 11234100
console.log(arr1.lastIndexOf((1))) // 返回参数在数组中最后一次出现的下标,无返回-1 1
console.log(arr1.map(x=>x>5)) // 返回新数组,元素为调用参数函数处理过的值 [false, false, false, false, false, true]
console.log(arr1.reduce(x=>x<5)) // true
console.log(arr1.reverse()) // 反转数组中元素的位置 [100, 4, 3, 2, 1, 1]
console.log(arr1.unshift(200)) // 在数组开头插入数据,返回插入后的长度 7
console.log(arr1.shift()) // 删除数组开头的数据,返回删除的数据 200
console.log(arr1.slice(0,2)) // 从指定下标开始截取指定个数,返回处理过的数组,不改变原数组 [100, 4]
console.log(arr1.some(x=>x<5)) // 数组中只要有一个元素满足条件,返回布尔值 true
console.log(arr1.sort((x,y)=>x>y)) // 对数组进行排序,传入排序逻辑 [1, 1, 2, 3, 4, 100]
console.log(arr1.splice(0,1)) // 操作原数组,指定下标删除指定个数,返回删除的数据数组,改变原数组 [1, 1, 2, 3, 4]
console.log(arr1.toLocaleString()) // 数组转为本地字符串 1,2,3,4,100
console.log(arr1.toString()) // 数组转为字符串 1,2,3,4,100
console.log(Symbol(arr1)) // 转为Symbol类型,独一无二 Symbol(1,2,3,4,100)
1、常规集合的filter、map、reduce处理方法
filter函数的主要用途是对数组元素进行过滤,并返回一个符合条件的元素的数组
const nums = [10,20,30,111,222,333]
let newNums=nums.filter(function(n){
return n<100
})
输出:[10,20,30]
map函数是对数组每个元素的映射操作,并返回一个新数组,原数组不会改变将newNums中每个数字乘2
const nums = [10,20,30,111,222,333]
let newNums=nums.map(function(n){
return n*2
})
输出:[20,40,60,222,666]
reduce函数主要用于对数组所有元素的汇总操作,如全部相加、相乘等
const nums = [10,20,30,111,222,333]
let newNums=nums.reduce(function(preValue,n){
return PreValue+n
},0)
输出:726
</script> </body> </html>

浙公网安备 33010602011771号