数组的去重

news/2024/7/19 16:09:57 标签: js

1.利用对象

思路:定义一个对象和数组,用对象来判断数组里的每一个元素是否一样,把数组的每一个都作为对象的key如果对象里面存在这个key当前就不添加到新数组中,没过没有就添加到新数组中

 const arry=[1,5,3,6,3,5,3,6,6,3,5,8,9,7,8,2,1,5]
  function quchong(arry){
    let obj={}
    let newarry=[]
    for(let a of arry){
       if(!obj[a]){
         obj[a]=1
         newarry.push(a)
       }
    }
    return newarry
  }
console.log(quchong(arry));

2.利用indexof

indexOf判断新数组是否有去重的数组的元素,没有的话就push进去

<script>
  const arry=[1,5,3,6,3,5,3,6,6,3,5,8,9,7,8,2,1,5]
  function quchong(arry){
    let newarry=[]
    for(let a of arry){
       if(newarry.indexOf(a)===-1){
         newarry.push(a)
       }
    }
    return newarry
  }
console.log(quchong(arry));
</script>

3.利用includes来判断重复

同一种思想 数组.includes(元素) 返回值是布尔值

<script>
  const arry=[1,5,3,6,3,5,3,6,6,3,5,8,9,7,8,2,1,5]
  function quchong(arry){
    let newarry=[]
    for(let a of arry){
       if(!newarry.includes(a)){
         newarry.push(a)
       }
    }
    return newarry
  }
console.log(quchong(arry));
</script>

4.filter和includes

<script>
  const arry=[1,5,3,6,3,5,3,6,6,3,5,8,9,7,8,2,1,5]
  function quchong(arry){
    let newarry=[]
     arry.filter(a=>{
          if(!newarry.includes(a)){
            newarry.push(a)
          }
       })
    return newarry
  }
console.log(quchong(arry));
</script>

5.forEach和includes

  const arry=[1,5,3,6,3,5,3,6,6,3,5,8,9,7,8,2,1,5]
  function quchong(arry){
    let newarry=[]
     arry.forEach(a=>{
          if(!newarry.includes(a)){
            newarry.push(a)
          }
       })
    return newarry
  }
console.log(quchong(arry));

http://www.niftyadmin.cn/n/1371472.html

相关文章

typeof与instanceof

typeof typeof 操作符返回一个字符串&#xff0c;表示未经计算的操作数的类型 typeof 1 // number typeof 1 // string typeof undefined // undefined typeof true // boolean typeof Symbol() // symbol typeof null // object typeof [] // object typeof {} // object ty…

vue3 toRow与markRaw、customRef 获取真实的对象用于操作该对象

toRow 作用&#xff1a;将生成的响应式数据转为普通数据&#xff0c;这样就可以操作该对象&#xff0c;以及获得该对象的属性。否则获取的是一个响应式对象&#xff08;输出是一个proxy对象&#xff09;。 markRaw 作用&#xff1a;标记一个对象&#xff0c;使其永远不会再…

vue3 setup中使用if当条件为真不进入if语句

需要写在onUpdated生命周期里面具体是为什么我也不知道&#xff0c;哪位的大佬可以帮我解答一下

null,undefined,NaN 的区别

undefined 表示不存在这个值。 undefined :是一个表示"无"的原始值或者说表示"缺少值"&#xff0c;就是此处应该有一个值&#xff0c;但是还没有定义。尝试读取时会返回 undefined 例如变量被声明了&#xff0c;但没有赋值时&#xff0c;就等于 undefine…

ES6看看看

https://es6.ruanyifeng.com/#docs/style

ES6的Set,Map,WeakSet,WeakMap

1.set 1.set可以存储引用数据类型 2.set中的数据都是唯一的&#xff08;可以用于初始化数组&#xff0c;实现数组的去重&#xff09; 3.Set实现了 iterator接口&#xff0c;所以可以使用扩展运算符和for…of…进行遍历&#xff0c;顺序就是插入的顺序 4.Map和Set中对象的引用都…

ES6的 class类

类声明和函数声明的区别和特点 1、函数声明可以被提升&#xff0c;类声明不能提升(与let声明类似)。 2、类声明中的代码自动强行运行在严格模式下。 3、类中的所有方法都是不可枚举&#xff08;不可循环&#xff09;的&#xff0c;而自定义类型中&#xff0c;可以通过Object…

Vue3 script-setup语法糖

vscode中使用script setup 1.起初 Vue3.0 暴露变量必须 return 出来&#xff0c;template 中才能使用&#xff1b; 2.Vue3.2 中 只需要在 script 标签上加上 setup 属性&#xff0c;组件在编译的过程中代码运行的上下文是在 setup() 函数中&#xff0c;无需 return&#xff…