iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >JavaScript数组常见操作有哪些
  • 764
分享到

JavaScript数组常见操作有哪些

2024-04-02 19:04:59 764人浏览 独家记忆
摘要

这篇文章主要为大家展示了“javascript数组常见操作有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数组常见操作有哪些”这篇文章吧

这篇文章主要为大家展示了“javascript数组常见操作有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数组常见操作有哪些”这篇文章吧。

创建数组

创建数组是基本功,其方法主要包括以下几种:

const arr = [1,2,3]                   
// 数组字面量const arr = [,,,]                     
// 三元素空位数组(hole array)const arr = new Array(4)              
// [,,,,]const arr = new Array(4,2)            
// [4,2]const arr = Array.of(1,2,3)           
// [1,2,3]

其中,我们一般最常用的是数组字面量法。

判断是不是数组

判断是不是数组的方法主要有:

// 方法一[1,2,3] instanceof Array   
// 方法二[1,2,3].constructor === Array
// 方法三Object.prototype.toString.call([1,2,3]) === '[object Array]'
// 方法四Array.isArray([1,2,3])
// 方法五(兼容写法)function isArray(arr){
    return Array.isArray ? 
        Array.isArray(arr):Object.prototype.toString.call(arr) === '[object Array]'}

一般最常用的应该是 isArray 方法。

类数组和数组的转换

我们有时碰到的数据结构不是纯数组,一般将其归类为“类数组”,类数组可以借助以下方法转为纯数组:

const x = document.querySelectorAll('a');
// 方法一Array.prototype.slice.call(x);
// 方法二Array.from(x);Array.from(x,mapFn,thisArg);
// 方法三[...x]
// 方法四function toArray(x){
    let res = []
    for(item of x){
        res.push(item)
    }
    return res}
    // 方法五Array.apply(null,x)
    // 方法六[].concat.apply([],x)

方法五和六本质上都是利用了 apply 的特点,即传给 apply 的第二个参数(数组或者类数组)会被转换为一个参数列表,这些参数再送到调用的方法(new Array 或者 concat)中。

数组去重

数组去重,本质上都需要比较两个元素是否相等,如果相等,则抛弃一个元素。为了准确地判断,这里统一使用 Object.is 进行比较。

1)利用 set 去重

set 要求元素不重复,因此将数组转换为 set 之后就可以去重了,接着再转换回数组即可。

function unique(arr){
    return Array.from(new Set(arr))
    // return [...new Set(arr)]}

2)双重循环 + splice

外层循环遍历所有元素,里层循环遍历当前元素往后的所有元素,若发现相等则利用 splice 移除掉一个。记得里层循环每次要回退一格,否则会遗漏掉某些元素

function unique(arr){
    for(let i = 0;i < arr.length;i++){
        for(let j = i + 1;i < arr.length;j++){
            if(Object.is(arr[i],arr[j])){
                arr.splice(j,1)
                j--
            }
        }
    }
    return arr}

3)新建数组 + includes

新建数组,每次往数组中添加元素之前都检查数组中是否已有该元素:

function unique(arr){
    const res = []
    arr.forEach((item,index) => {
        // 也可以 if(res.indexOf(item) == -1),但是无法正确判断 NaN
        if(!res,includes(item)){
            res.push(item)
        }
    })}

4)reduce + includes

function unique(arr){
    return arr.reduce((acc,cur) => {
        // return acc.includes(cur) ? acc : acc.concat(cur)
        return acc.includes(cur) ? acc : [...acc,cur]
    },[])}

5)新建数组 + sort

根据 sort 的机制(在每个元素上调用 toStrng,之后在字符串层面进行排序),让相等的元素聚集在一起。新建数组,每次往数组中添加元素之前都检查该元素是否等于前面的元素,是则属于重复元素:

function unique(arr){
    arr.sort()
    const res = [arr[0]]
    for(let i = 1;i < arr.length;i++){
        if(!Object.is(arr[i],arr[i-1])){
            res.push(arr[i])
        }
    }
    return res}

6)新建数组 + 利用对象属性

这种方法其实和“新建数组 + includes”一样。新建数组,每次往数组中添加元素之前都检查该元素是否已经作为对象的属性:

// 对象属性值可以认为是元素重复的次数function unique(arr){
    const res = []
    const obj = {}
    arr.forEach((item,index) => {
        if(!obj[item]){
            res.push(item)
            obj[item] = 1
        } else {
            obj[item]++
        }
    })
    return res}

这里检测的是对象的属性名,而属性名本质上是一个字符串,因此会认为 obj[true]obj["true"]是相等的,从而导致元素 true 或者元素 "true" 未能放入新数组中

7)利用 map

本质上和上面的方法是一样的,但是不需要新建数组:

function unique(arr){
    let map = new Map()
    for(item of arr){
        if(!map.has(item)){
            map.set(item,true)
        }
    }
    return [...map.keys()]}

8)filter + indexOf

去掉重复的元素,换个角度来理解就是保留那些索引等于第一次出现时的索引的元素,这样的元素可以用 filter 筛选出来,放到一个数组中:

function unique(arr){
    return arr.filter((item,index) => index === arr.indexOf(item))}

使用 indexOf 的缺点是无法正确判断 NaN。

以上是“JavaScript数组常见操作有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: JavaScript数组常见操作有哪些

本文链接: https://www.lsjlt.com/news/88929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript数组常见操作有哪些
    这篇文章主要为大家展示了“JavaScript数组常见操作有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数组常见操作有哪些”这篇文章吧...
    99+
    2024-04-02
  • JavaScript数组常见操作技巧有哪些
    这篇文章主要介绍“JavaScript数组常见操作技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript数组常见操作技巧有哪些”文章能帮助大家解决问题。一、创建数组创建数组是基...
    99+
    2023-06-29
  • PHP中常见的数组操作有哪些?
    PHP是一种广泛使用的服务器端编程语言,也是互联网应用开发中非常重要的一部分。在PHP中,数组是一种非常常见的数据类型,它可以用于存储和操作一组相关的数据。在本文中,我们将介绍PHP中常见的数组操作,希望对PHP开发者有所帮助。创建数组在P...
    99+
    2023-05-22
    PHP数组操作 常见数组操作 PHP数组方法
  • JavaScript数组常见操作技巧
    目录一、创建数组二、判断是不是数组三、类数组和数组的转换四、数组去重1.利用 set 去重2.双重循环 + splice3.新建数组 + includes4.reduce + inc...
    99+
    2024-04-02
  • 常用的javascript数组操作方法有哪些
    这篇文章主要介绍“常用的javascript数组操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“常用的javascript数组操作方法有哪些”文章能帮助...
    99+
    2024-04-02
  • JavaScript中有哪些常见的遍历操作
    JavaScript中有哪些常见的遍历操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。for循环var a =&nb...
    99+
    2024-04-02
  • JavaScript数组常见操作技巧(二)
    目录一、出数组中的重复元素或非重复元素二、数组扁平化 / 数组降维二维数组:双重循环二维数组:循环 + concat二维数组:reduce + concat二维数组:展开 / app...
    99+
    2024-04-02
  • JavaScript字符串处理常见操作有哪些
    这篇文章给大家分享的是有关JavaScript字符串处理常见操作有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、字符串合并操作:“ + ”var iNum01&...
    99+
    2024-04-02
  • JavaScript数组操作技巧有哪些
    这篇“JavaScript数组操作技巧有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript数组操作技巧有...
    99+
    2023-06-27
  • javascript中常见的数组方法有哪些
    小编给大家分享一下javascript中常见的数组方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript数组方法有:concat()、join()、pop()、push()、revers&#...
    99+
    2023-06-14
  • JavaScript数组常见使用方法有哪些
    今天小编给大家分享一下JavaScript数组常见使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. push...
    99+
    2023-07-04
  • 总结20个常见的JavaScript数组操作
    JavaScript中的Array对象与其他编程语言中的数组一样,是一组数据的集合。在JavaScript中,数组里面的数据可以是不同类型的,并具有用于执行数组常见操作的方法。声明数组有三种不同的声明方式1. 常规方式const hobby...
    99+
    2023-05-14
    前端
  • 20个常见的JavaScript数组操作总结
    目录声明数组1. 常规方式2. 简洁方式3. 字面Array 对象方法1. forEach2. map3. concat4. push5. unshift6. pop7. shift...
    99+
    2024-04-02
  • JAVA操作数组的异常有哪些
    本篇内容介绍了“JAVA操作数组的异常有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数组是程序员经常会用到的数据结构。在进行数组操作如...
    99+
    2023-06-03
  • JavaScript数组操作的方法有哪些
    本篇内容介绍了“JavaScript数组操作的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Ja...
    99+
    2024-04-02
  • Git中常见的操作有哪些
    这篇文章给大家分享的是有关Git中常见的操作有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Git版本控制开发难题在实际开发中我们会遇到一些问题,电脑蓝屏,代码丢了,懊悔不?磁盘坏了,文件没了,懊悔不?时间长...
    99+
    2023-06-29
  • JavaScript数组合并的常见方法有哪些
    这篇文章主要介绍了JavaScript数组合并的常见方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数组合并的常见方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES6 解构[...
    99+
    2023-07-04
  • JavaScript中数组常见的操作技巧分享
    这篇文章主要讲解了“JavaScript中数组常见的操作技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中数组常见的操作技巧分享”...
    99+
    2024-04-02
  • JavaScript中有哪些操作数组的方法
    本篇文章给大家分享的是有关JavaScript中有哪些操作数组的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 与数据结构相关的方法有...
    99+
    2024-04-02
  • 常见的setData操作错误有哪些
    这篇文章主要介绍了常见的setData操作错误有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇常见的setData操作错误有哪些文章都会有所收获,下面我们一起来看看吧。  setData  setData ...
    99+
    2023-06-26
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作