JS 常用方法
检索类
typeof
作用:判断对象的类型,返回结果为字符串,字符串类型: 'number', 'boolean', 'string', 'undefined', 'object', 'function', 'symbol'
使用方法:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算
console.log(typeof "demo") // 返回 string
console.log(typeof 4) // 返回 number
console.log(typeof false) // 返回 boolean
console.log(typeof [1,2,3,4]) // 返回 object
console.log(typeof {name:'MuYan'}) // 返回 object
instanceof
作用:判断对象的类型,返回结果为布尔值,如果是指定类型返回 true,否则返回 false
使用方法:objectName instanceof objectType (对象 instanceof 对象类型)
console.log([] instanceof Array) // 返回 true
参考资料:ECMAScript 对象类型
find
作用:查找元素,查找到符合条件的第一个元素就返回,找到就返回找到的值,找不到返回undefined
使用方法:object.find(function(value, index, arr)), value: 当前的值,index: 当前的位置, arr: 原数组
console.log([1, 2, 3, 4].find((item) => item > 2)) // 返回 3
findIndex
作用:查找元素,返回找到的元素索引值,找不到返回 -1 (查找到符合条件的第一个元素就返回)
使用方法:object.findIndex(function(value, index, arr)), value: 当前的值,index: 当前的位置, arr: 原数组
console.log([1, 2, 3, 4].findIndex((item) => item > 2)) // 返回 2
includes
作用:判断是否包含指定的子字符串,如果找到匹配的字符串则返回 true,否则返回 false。
使用方法:string.includes(searchvalue, start), searchvalue: 要查找的字符串,start: 可选,设置从那个位置开始查找,默认为 0。
console.log("Hello world".includes('w')) // 返回 true
console.log([1,2,3].includes(2)) // 返回 true
集合类
forEach
作用:用于调用数组的每个元素,并将元素传递给回调函数。forEach() 对于空数组是不会执行回调函数的。
使用方法:array.forEach(function(currentValue, index, arr))。
参数说明: currentValue:必需,当前元素。index:可选,当前元素的索引值。arr 可选,当前元素所属的数组对象。thisValue:可选。传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值
[1,2,3].forEach(item => {
console.log(item)
})
// 返回结果
// 1
// 2
// 3
map
作用:方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。按照原始数组元素顺序依次处理元素,不会对空数组进行检测,不会改变原始数组。
使用方法:array.map(function(currentValue,index,arr), thisValue)
参数说明: currentValue:必需,当前元素。index:可选,当前元素的索引值。arr 可选,当前元素所属的数组对象。thisValue:可选。传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值
console.log([1,2,3].map(item => item * 2)) // 返回 [2, 4, 6]
reduce
作用:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对于空数组是不会执行回调函数的。
使用方法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数说明: total:必需,初始值, 或者计算结束后的返回值。currentValue:必需,当前元素。currentIndex:可选,当前元素的索引。arr 可选,当前元素所属的数组对象。 如果这个参数为空, "undefined" 会传递给 "this" 值
console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].reduce((sum, number) => {
return sum + number;
, 0)) // 返回 55
filter
作用:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会对空数组进行检测。不会改变原始数组。
使用方法:array.filter(function(currentValue,index,arr), thisValue)
参数说明:currentValue:必须,当前元素的值。index:可选,当前元素的索引值。arr:可选,当前元素属于的数组对象。
console.log([1,2,3,4].filter(item => item > 1)) // 返回 [2, 3, 4]
数组的操作类
concat
作用:用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新数组。
使用方法:arrayObject.concat(arrayX,arrayX,......,arrayX),arrayX:可以是具体的值,也可以是数组对象。可以是任意多个。
console.log([1,2,3].concat(4,5)) // 返回 [1, 2, 3, 4, 5]
join
作用:用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的。
使用方法:arrayObject.join(separator),separator:为指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符
console.log([1,2,3].join()) // 返回 1,2,3
reverse
作用:用于颠倒数组中元素的顺序。
使用方法:arrayObject.reverse()
console.log([1,2,3].reverse()) // 返回 [3, 2, 1]
shift
作用:用于把数组的第一个元素从其中删除,并返回第一个元素的值。
使用方法:arrayObject.shift()
let list = [1,2,3]
console.log(list.shift()) // 返回 1
console.log(list) // 返回 [2, 3]
slice
作用:从已有的数组中返回选定的元素。该不会修改数组,而是返回一个子数组。
使用方法:arrayObject.slice(start,end)
参数说明:
start:必需,规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
console.log([1,2,3].slice(2)) // 返回 [3]
splice
作用:删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
使用方法:arrayObject.splice(index,howmany,item1,.....,itemX)
参数说明:
index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX:可选。向数组添加的新项目。
let list = [1,2,3]
list.splice(0, 1)
console.log(list) // 返回 [2,3]
push
作用:将一个或多个元素添加到数组的末尾,并返回该数组的新长度
使用方法:arrayObject.push(newelement1,newelement2,....,newelementX)
参数说明:
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
console.log([1,2,3].push(4,5,6)) // 返回 6
pop
作用:从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
使用方法:arrayObject.pop()
console.log([1,2,3].pop()) // 返回 3