数组某项抽离 + 数组去重

简介: 该文段讲述了如何处理两个数组`oldArr`和`newArr`。首先,从`oldArr`中提取`color`键的值到`newArr`,并实现去重:遍历`newArr`,用嵌套的for循环比较元素,若发现重复则用`splice`删除。最后,这些操作被封装成一个名为`unlink`的方法,用于去除数组中的重复值。

已知一个oldArr与一个newArr,现要求如下:

  • 将一个数组中的某一key下的value全部放到一个新数组中,然后使用去重将该新数组打印出来

      oldArr = [
          {
         
         color:"red"},
          {
         
         color:"red"},
          {
         
         color:"blue"}
      ]
    
  • 将 oldArr 数组中的某一key下的value全部放到一个新数组 newArr 中

      const newArr = ref();
      const oldArr = [
          {
         
         color:"red"},
          {
         
         color:"red"},
          {
         
         color:"blue"}
      ];
      oldArr.forEach((ele)=>{
         
         
          newArr.value.push(ele.color)
      })//['red','red','blue']
    
  • 数组去重—— 利用for嵌套for,然后splice去重

      const newArr = ref();
      const oldArr = [
          {
         
         color:"red"},
          {
         
         color:"red"},
          {
         
         color:"blue"}
      ];
      oldArr.forEach((ele)=>{
         
         
          newArr.value.push(ele.color)
      })//['red','red','blue']
      // 去重
      for(let i = 0; i<newArr.value.length; i++){
         
         
          for(let j = i+1; j<newArr.value.length; j++){
         
         
              if(newArr.value[i] == newArr.value[j]){
         
         
                  newArr.value.spice(j,1);
                  j--
              }
          }
      }
    
  • 封装成一个方法unlink
      function unlink(arr) {
         
         
          for (var i = 0; i < arr.length; i++) {
         
             // 首次遍历数组
              for (var j = i + 1; j < arr.length; j++) {
         
            // 再次遍历数组
                  if (arr[i] == arr[j]) {
         
                   // 判断连个值是否相等
                      arr.splice(j, 1);           // 相等删除后者
                      j--;
                  }
              }
          }
          return arr
      }
    

在这里插入图片描述

相关文章
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全方位实践
本文深入探讨了构建高效运维体系的关键要素,从监控、日志管理、自动化工具、容器化与微服务架构、持续集成与持续部署(CI/CD)、虚拟化与云计算以及安全与合规等方面进行了全面阐述。通过引入先进的技术和方法,结合实际案例和项目经验,为读者提供了一套完整的运维解决方案,旨在帮助企业提升运维效率,降低运营成本,确保业务稳定运行。
|
存储
RandomAccessFile实现文件分割、合并
RandomAccessFile实现文件分割、合并
291 0
|
Android开发 开发者
Android中弹框如何设计成全屏的
本文介绍在Android中实现全屏对话框的方法,包括使用`Dialog`和`DialogFragment`两种方式。通过设置对话框无标题、调整布局参数及使用透明背景实现全屏效果。适用于希望提升应用交互体验的开发者。
305 0
|
12月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
536 2
|
机器学习/深度学习 Python
音频去噪:使用Python和FFT增强音质
声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频来说非常重要,不仅是为了聆听,也是为了创建某些机器学习任务的数据集。
436 0
音频去噪:使用Python和FFT增强音质
|
11月前
|
安全 数据中心
数据中心服务器机架是什么
数据中心服务器机架是用于容纳服务器、存储器等IT设备的结构,旨在提升数据中心的管理与运营效率。常见的类型包括开放式机架、封闭式机柜和壁挂式机架,每种类型各有特点,适用于不同的场景需求。选择时需考虑尺寸、承重、冷却效率及安全性等因素,以确保最佳的使用效果。
735 4
|
C语言
【STM32 CubeMX】移植u8g2(一次成功)
【STM32 CubeMX】移植u8g2(一次成功)
1955 0
|
运维 关系型数据库 MySQL
"MySQL运维精髓:深入解析数据库及表的高效创建、管理、优化与备份恢复策略"
【8月更文挑战第9天】MySQL是最流行的开源数据库之一,其运维对数据安全与性能至关重要。本文通过最佳实践介绍数据库及表的创建、管理与优化,包括示例代码。涵盖创建/删除数据库、表结构定义/调整、索引优化和查询分析,以及数据备份与恢复等关键操作,助您高效管理MySQL,确保数据完整性和系统稳定运行。
851 0
|
安全 Linux 网络安全
Linux加强篇009-使用ssh服务管理远程主机
山重水复疑无路,柳暗花明又一村
454 0
Linux加强篇009-使用ssh服务管理远程主机
|
安全 数据安全/隐私保护 开发者
如何使用Pyarmor保护你的Python脚本
如何使用Pyarmor保护你的Python脚本
626 0