前端算法基础题

2 篇文章 0 订阅

算法太薄弱,每天刷题

数组

在这里插入图片描述

//用数组自带的reduce方法进行迭代金酸
function sum(arr) {
   return arr.reduce(function(pre,next){
        return pre+next
    })
}

在这里插入图片描述

//注意对数组本身去除,随意length会变化,i++要在没有去除元素的时候加
function removeWithoutCopy(arr, item) {
    for(var i=0;i<arr.length;){
        if( arr[i]==item ){
            arr.splice(i,1)
            continue;
        }
        i++
    }
    return arr
}
题目描述

在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组

function prepend(arr, item) {
   return  [].concat(item,arr)
}

在这里插入图片描述

//arr.indexOf(item) != arr.lastIndexOf(item) 通过第一次出现和最后出现的index来判断是否重复
//arr.indexOf(item) == index 通过第一次出现index和遍历index对比,去除重复的
function duplicates(arr) {
   return arr.filter((item,index)=>{
        return arr.indexOf(item) != arr.lastIndexOf(item) && arr.indexOf(item) == index
    })
}
题目描述

在数组 arr 中,查找值与 item 相等的元素出现的所有位置

//indexOf可以根据index不同选取查找范围
function findAllOccurrences(arr, target) {
    var index = 0
    var list = []
    do{
        index = arr.indexOf(target,index)
        if(index!=-1){
            list.push(index)
            index++
        }
    }while(index!=-1)
    return list
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值