美文网首页
数组去重与深浅拷贝

数组去重与深浅拷贝

作者: jasmine_6aa1 | 来源:发表于2020-12-10 17:54 被阅读0次

数组去重

1, 数组去重

  • ES6的set 方法
var arr = [1, 2, 2, 3, 5, 6, 3, 7, 4]
var arrCopy = new Set(arr); // [1, 2, 3, 5, 6, 7, 4]
  • 对象属性存在的特性,如果没有该属性则存入新数组
var arr =[1, 2, 2, 3, 5, 6, 3, 7, 4]
function unique(arr) {
    var obj={ }
    var newArr=[ ]
    for ( let i = 0; i < arr.length; i++ ) {
        if ( !obj[arr[i]] ) {
            obj.push(arr[i])
            newArr.push(arr[i])
        }
    }
    return newArr
}
console.log(unique(arr)); // [1, 2, 3, 5, 6, 7, 4]
  • indexof 方法
var arr =[1, 2, 2, 3, 5, 6, 3, 7, 4]
function unique(arr) {
    var newArr = []
    for (var i = 0; i < arr.length; i++) {
         if (newArr.indexOf(arr[i])===-1) {
             newArr.push(arr[i])
        }
    }
    return newArr
}
console.log(unique(arr)); // [1, 2, 3, 5, 6, 7, 4]
  • 利用includes
var arr =[1, 2, 2, 3, 5, 6, 3, 7, 4]
function unique(arr) {
  if (!Array.isArray(arr)) {
    return
  }
  var array =[];
  for(var i = 0; i < arr.length; i++) {
      if( !array.includes( arr[i]) ) { //includes 检测数组是否有某个值
          array.push(arr[i]);
       }
  }
  return array
}

拷贝数组

  • ES6中扩展运算符(不去重,但是浅拷贝,是引用不是复制)
var arr =[1, 2, 2, 3, 5, 6, 3, 7, 4]
var arrCopy = [...arr]
arrCopy
  • for循环浅拷贝
array = [1,2,3,4,5,6]; 
array2 = [ ]; 
for ( i = 0; i < array.length; i++) { 
    array2[i] = array[i];
}
array2 // [1,2,3,4,5,6]; 
  • while() 浅拷贝
array = [1,2,3,4,5,6]; 
array2 = [ ]; 
i = -1
while ( ++i < array.length ) { 
    array2[i] = array[i]
}
array2 // [1,2,3,4,5,6]; 
  • array.map() 浅拷贝
array = [1,2,3,4,5,6]; 
array2 = array.map(x=>x)
array2 //  [1,2,3,4,5,6];
  • array.filter() 浅拷贝
array = [1,2,3,4,5,6]; 
array2 = array.filter(()=>true)
array2 //  [1,2,3,4,5,6];
  • array.slice() 浅拷贝
array = [1,2,3,4,5,6]; 
array2 = array.slice()
array2 //  [1,2,3,4,5,6];
  • array.concat (浅拷贝)
array = [2,3,4,5,6]; 
array2 = [4,5,9,10,21]; 
array.concat(array2) // [2, 3, 4, 5, 6, 4, 5, 9, 10, 21]
  • array.from (浅拷贝)
array = [2,3,4,5,6]; 
array2 = [ ]; 
array2 = Array.from(array) // [2,3,4,5,6]
  • json格式转换(深拷贝)
json.stringify( ) // 将对象、数组转换成字符串
json.parse( ) // 将字符串转成json对象

相关文章

  • 数组去重与深浅拷贝

    数组去重 1, 数组去重 ES6的set 方法 对象属性存在的特性,如果没有该属性则存入新数组 indexof 方...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • 放进收藏夹,省下时间睡觉!

    1. 数组去重 2. 深浅拷贝 浅拷贝 深拷贝 假深拷贝 真深拷贝 3. 事件委托 5. 使用push和apply...

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • 数组、深浅拷贝

    如何判断数组类型 typeof ❌对Array不起作用,会将结果判断为object,同理null instance...

  • js深浅拷贝

    所谓的深浅拷贝是相对与typeof === 'object' 而言的,数组是用堆对应保存的。浅拷贝:拷贝了对象的存...

  • 相关代码总结

    1.数组去重 2.深拷贝数组或者对象

  • 面试题【Day17】

    本篇绪论 1, 数组去重 2,深、浅拷贝 1,数组去重 方法一: 方法二: 2, 深、浅拷贝 基本数据类型不管是浅...

  • 深浅拷贝

    深浅拷贝针对的是 对象类型,如果是字符串的数组用[...arr],还是不会影响 要区分针对数组的深浅拷贝(默认情况...

  • 手撕前端面试代码题

    目录 DOM 事件代理 数组 对象 扁平化 去重 -unique() 拷贝 浅拷贝 深拷贝(copy()函数实现、...

网友评论

      本文标题:数组去重与深浅拷贝

      本文链接:https://www.haomeiwen.com/subject/zaergktx.html