JavaScript之封装Array函数

这篇博客详细介绍了JavaScript中Array对象的各种方法,包括连接数组、删除元素、排序、查找、去重等操作,并探讨了如何处理数组的首尾元素、除去假值、获取交并集等实用技巧,旨在提升JavaScript开发者在处理数组时的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容借鉴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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值