JavaScript之封装Array函数
以下内容借鉴Underscore、Lodash等函数工具库
Array 对象方法
- concat() 连接两个或更多的数组,并返回结果。
- join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
- pop() 删除并返回数组的最后一个元素
- push() 向数组的末尾添加一个或更多元素,并返回新的长度。
- reverse() 颠倒数组中元素的顺序。
- shift() 删除并返回数组的第一个元素
- slice() 从某个已有的数组返回选定的元素
- sort() 对数组的元素进行排序
- splice() 删除元素,并向数组添加新元素。
- toSource() 返回该对象的源代码。
- toString() 把数组转换为字符串,并返回结果。
- toLocaleString() 把数组转换为本地数组,并返回结果。
- unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
- valueOf() 返回数组对象的原始值
数组首个元素
var first=(arr)=>{
return arr[0];
}
除第一个元素外的其它全部元素
数组最后一个元素
除最后一个元素外的其它全部元素
除去所有假值
数组嵌套展开
删除某个元素
Array.prototype.remove=(value="")=>{
let index=this.indexOf(value);
if(index!==0){
this.splice(index,1);
}
}
var remove=(arr = [], value = "") => {
for (let i = 0; i < arr.length; i++) {
let index = arr.indexOf(arr[i]);
if (indx == index) {
arr.splice(index, 1)
}
}
return arr
}
对比数组取交集
var intersect=(arr1=[],arr2=[])=>{
let newArr = [];
for(let i =0;i<arr1.length;i++){
for(let j=0;j<arr2.length;j++){
if(arr1[i]==arr2[j]){
newArr.push(arr1[i]);
}
}
}
return newArr;
}
对比数组取并集
数组去重
var distinct=(arr=[])=>{
let newArr=[];
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i])
}
}
return newArr;
}
数组中出现次数最多的元素
数组搜索
var filter=(arr = [], query = "") => {
return arr.filter((el) => {
return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
})
}
最大值&&最小值
Array.prototype.max =()=>{
return Math.max.apply({}, this)
}
Array.prototype.min = ()=>{
return Math.min.apply({}, this)
}
var max=(arr = []) => {
return Math.max.apply({}, arr)
},
var min=(arr = []) => {
return Math.min.apply({}, arr)
}
判断是否包含某个元素
Array.prototype.isContain = (value = ""){
for (let i = 0; i < this.length; i++) {
if (this[i] == val) {
return true;
}
}
return false;
}