0325刷题

1.查找元素:forEach循环

function findAllOccurrences(arr, target) {
    var temp=[];
    arr.forEach(function(value,index){
        value !==target||temp.push(index)
    })
    return temp
    }

2.移除数据:slice

关于改变数组和不改变数组的方法
slice() 方法可从已有的数组中返回选定的元素。
语法:arrayObject.slice(start,end)
参数 描述:start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
说明:请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

4.添加元素

function insert(arr, item, index) {
var result = arr.slice(0);
result.splice(index,0,item);
return result;
}

5.删除重复元素
思路:先排序再删除

function duplicates(arr) {
    var a=arr.sort();
    var b=[];
    for(i=0;i<a.length;i++){
        if(a[i]==a[i+1] && a[i]!=a[i-1]){
             b.push(a[i]);
        }
    }
    return b
}

6.函数的块级作用域

function functions(flag) {
   var getvalue=null;
    if (flag) {
      getValue = function(){ return 'a'; }
    } else {
      getValue = function() { return 'b'; }
    }

    return getValue();
}

这道题是考函数声明与函数表达式的区别,原题的写法,是在两个逻辑分支里面各有一个函数声明,但是对于函数声明,解析器会率先读取并且让其在执行任何代码前可用,意思就是别的代码还没运行呢,两个getValue声明已经被读取,所以总是执行最新的那个。函数表达式,当解析器执行到它所在的代码行时,才会真正被解释执行,所以两个逻辑分支可以分别执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值