当前位置: 首页 > news >正文

数组去重、伪数组和真数组的区别以及伪数组如何转换成真数组

1.数组去重

1) 利用数组的indexOf下标属性来查询。

如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

如果在数组中没找到指定元素则返回 -1。

        function unique4(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(unique4([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));// 结果是[1, 2, 3, 5, 6, 7, 4]

2)利用数组原型对象上的includes方法。

        function unique5(arr) {var newArr = []for (var i = 0; i < arr.length; i++) {if (!newArr.includes(arr[i])) {newArr.push(arr[i])}}return newArr}console.log(unique5([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));// 结果是[1, 2, 3, 5, 6, 7, 4]

3) 利用数组原型对象上的 forEach 和 includes方法

       function unique7(arr) {let newArr = [];arr.forEach(item => {return newArr.includes(item) ? '' : newArr.push(item);});return newArr;}console.log(unique7([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));// 结果是[1, 2, 3, 4, 5, 6, 7]

4) 利用 ES6的set 方法

        function unique10(arr) {//Set数据结构,它类似于数组,其成员的值都是唯一的return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组}console.log(unique10([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));// 结果是[1, 2, 3, 5, 6, 7, 4]

2.伪数组和真数组的区别以及伪数组如何转换成真数组?

  1. 伪数组不具有数组的方法
  2. 真数组的长度是可变的,是内置的属性,伪数组的长度不可变,是自定义的一个属性 

伪数组如何转换成真数组,

1. let newArray = [...伪数组] 扩展运算符 

2. let newArr =  Array.form(伪数组)

http://www.lryc.cn/news/3291.html

相关文章:

  • JavaScript内置支持类Array
  • GitLab CI-CD 学习笔记
  • K8S安装
  • 【C++】模板初阶STL简介
  • 备战蓝桥杯第一天【二分查找无bug版】
  • Java集合中的Map
  • 【java】springboot项目启动数据加载内存中的三种方法
  • 【GO】29.go-gin支持ssl/tls,即https示例
  • 逻辑仿真工具VCS的使用-Makefile
  • 信息系统安全技术
  • 【数据结构】最小生成树(Prim算法,普里姆算法,普利姆)、最短路径(Dijkstra算法,迪杰斯特拉算法,单源最短路径)
  • Session与Cookie的区别(一)
  • 【Java】重载和重写的区别
  • AcWing 第 90 场周赛
  • 刚刚,体验了一把Bing chat很爽
  • 牛客网Python篇数据分析习题(二)
  • 如何用Python打包好exe文件,并替换图标
  • NFC概述摘要
  • Python-项目实战--贪吃蛇小游戏(1)
  • vscode sftp从linux服务器下载文件至本地:No such file or dictionary【已解决】
  • 详解指针(2)(初阶版)
  • 超详细讲解字符串查找函数(保姆级教程!!!)
  • LeetCode-1138. 字母板上的路径【哈希表,字符串】
  • Vue 可配置化的路由缓存(Vu2 Vue3)
  • Linux VPU驱动
  • spring 笔记
  • Java日志框架学习
  • 基础面试题:堆和栈的区别
  • (干货教程)在VSCode并使用chatgtp插件编写CC++语言程序
  • 【思维模型】概率思维的价值:找到你的人生算法,实现阶级跃迁!