【小白鲨笔记】js面试题(六)

18 篇文章 0 订阅

六、数组系列

1、JS判断变量是不是数组

  1. isArray

    var arr = [1,2,3];
    console.log( Array.isArray( arr ) );
    
  2. instanceof

    var arr = [1,2,3];
    console.log( arr instanceof Array );
    
  3. 原型/prototype

    var arr = [1,2,3];
    console.log( Object.prototype.toString.call(arr).indexOf('Array') > -1 );
    
  4. isPrototypeOf()

    var arr = [1,2,3];
    console.log( Array.prototype.isPrototypeOf(arr) )
    
  5. constructor

    var arr = [1,2,3];
    console.log( arr.constructor.toString().indexOf('Array') > -1 )
    

2、Slice对比Splice

  1. slice(start [, end]):截取数组

    • 该方法不会改变原数组

    • 返回:一个新的数组

  2. splice(start, deleteCount[, item1, item2…]):插入、删除、替换

    • 该方法会改变原数组

    • 返回:删除的元素

注意:正整数从头开始数,负整数可从数组结尾处规定位置

3、数组去重

  1. new Set

    var arr1 = [1,2,3,2,4,1];
    function unique(arr){
        return [...new Set(arr)]
    }
    console.log( unique(arr1) );
    
  2. indexOf

    var arr2 = [1,2,3,2,4,1];
    function unique( arr ){
        var brr = [];
        for( var i=0;i<arr.length;i++){
            if(  brr.indexOf(arr[i]) == -1 ){
                brr.push( arr[i] );
            }
        }
        return brr;
    }
    console.log( unique(arr2) );
    
  3. sort

    var arr3 = [1,2,3,2,4,1];
    function unique( arr ){
        arr = arr.sort();
        var brr = [];
        for(var i=0;i<arr.length;i++){
            if( arr[i] !== arr[i-1]){
                brr.push( arr[i] );
            }
        }
        return brr;
    }
    console.log( unique(arr3) );
    

4、找出多维数组最大值

function fnArr(arr){
    var newArr = [];
    arr.forEach((item =>{
        newArr.push(Math.max(...item))
    })
    return newArr;
}
console.log(fnArr([
    [4,5,1,3],
    [13,27,18,26],
    [32,35,37,39],
    [1000,1001,857,1]
]));

5、find对比filter

  1. 返回:

    • filter:返回新数组,不会改变原始数组

    • find:返回具体的内容

    let arr = [1,2,3,4,5,2,45]
    console.log(arr.filter(v => v > 2), arr) //[3,4,5,45], arr不变
    console.log(arr.find(v => v > 2)) //3 -- 返回第一个匹配结果
    
  2. 匹配

    • find:匹配第一个即返回

    • filter:返回整体

6、some对比every

  • some:只要有一个元素符合要求就返回true(一项匹配)

  • every:数组中的每一个元素都满足要求才返回true(全部匹配)

    let arr = [1,2,3,4,231,1324,1,12,4,32]
    console.log(arr.some(v => v > 55)) //true
    console.log(arr.every(v => v > 55)) //false
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值