问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

JS数组扁平化处理的几种方法

提问网友 发布时间:2022-04-20 10:29
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2022-04-20 09:21
关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。
关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。
第一:读取数组 for循环
方法如下:
var ay=[1,"sdsd","sdsd"]for (var i=0;i<ay.length;i++) {
console.log("index:"+i+" "+ay[i]) //index:0 1 index:1 sdsd index:2 sdsd
}
第二:合并数组 concat
方法如下:
var arr1=['w','e','s'];
var arr2=['e','y','u'];var arr3=arr1.concat(arr2);console.log(arr3) //['w','e','s''e','y','u'];第三:数组变为字符串格式 join
方法如下:
var arr1=['w','e','s'];
var arr4=arr1.join()console.log(arr4) //w,e,s
第四:删除最后一个元素,针对老数组是删除最后一个,针对新数组是返回最后一个 pop
var arr6=["d","s","t"];var arr7=arr6.pop();console.log(arr6) // ["d","s"];console.log(arr7);// t
第五:添加最后一个元素,针对老数组最后一个元素后面添加一个元素,新数组返回元素个数 push
var arr8=["i","u","t"];
var arr9=arr8.push("k");
console.log(arr8); //["i","u","t","k"];
console.log(arr9); // 4
第六:shift() 和pop()一样,不同的是操作的是开头删除的元素shift();具体操作不在展示第七:unshiift()和push一样,不同的是操作的是开头添加的元素unshift();具体操作不再展示
第八:反转数组 reverse
方法如下:
var arr1=['w','e','s'];
var arr10=arr1.reverse()
console.log(arr10) //['s','e','w'];
第九:数组排序 sort a-b正向 b-a 反向
正向
var arr11=[3,1,5,8,28]var arr12=arr11.sort(function (a,b) {return a-b;})console.log(arr12) //[1,3,5,8,28];
反向
var arr13=arr11.sort(function (a,b) {return b-a;})console.log(arr13) //[28,8,5,3,1]
第十:数组截取 数组截取的方法主要有slice 和splice,另外说到截取我这里随便也把字符串截取带上,字符串截取的方法主要有substr 和substring
(1)slice 使用方法arr.slice(m,n);其中arr为数组,m,n为两个参数,意思是从已有数组中返回选定的元素,截取位置均为下标,其中m必须,为起始位置,可以为负值,n为结束位置(截取位置并不包含)。
示例如下:
①只有起起始值,并且为正,默认的从起始位置一直到整个数组结束,起始下标从0开始
var arr=[2,3,5,6,8,9]var arr1=arr.slice(1)console.log(arr) // [2,3,5,6,8,9] 老数组是没有变化的,下面不在列举,都是一样的console.log(arr1) //[3,5,6,8,9] 只有起始参数,并且为正值,返回新数组从下标1开始截取
②只有起始值,并且为负,默认的是从起始位置一直到整个数组结束,此处没有起始值,数组的最后一个下标是-1,比如此例,如果从-6开始取,必定是整个数组
var arr=[2,3,5,6,8,9]var arr1=arr.slice(-1)console.log(arr1) //[9] 只有起始参数,并且为负值,从数组尾部截取元素
③有起始值和结束值,并且为正,此处需注意下标是从小到大,比如你(3,1)肯定是取不到值的,另外截取的下标个数并不包含最后一个下标
var arr=[2,3,5,6,8,9]var arr1=arr.slice(1,4)console.log(arr1) //[3,5,6] 此时是从下标1开始到下标4,但是需要注意的是并不包含下标4,准确的说是1-3的下标
④有起始值和结束值,并且为负,此处需注意下秒也是从小到大,同理,比如(-1,-6)也是肯定取不到值的,另外截取的下标个数也并不包含最后一个下标
var arr=[2,3,5,6,8,9]var arr1=arr.slice(-6,-1)console.log(arr1) //[2,3,5,6,8]
⑤有起始值和结束值,并且正负都有
负值到0
var arr=[2,3,5,6,8,9]var arr1=arr.slice(-1,0)
//刚刚都看到了,数组下标都是从小到大的,所以说如果正负都有的情况下,理论上应该可以取值的,比如这个例子,-1为9的小标,0为2的下标,所以取值应该为 [9],但是结果并不是这样的console.log(arr1) //[ ] 从这里可以看出他的结果是为空的,所以从负值到0结果是取不到的
负值到正直
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,2)
//那从负值到正值呢,同样也是取不到值的
console.log(arr1) //[ ]
正直到负值
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(2,-1)
//那从正直到负值,这个理论上是取不到的,但是看下结果
console.log(arr1) //[ 5,6,8] 从结果可以看出是可以取的 原理是2的下标为5,-1的下标为9,不包含结束位置下标
总结:这个方法看着可能会麻烦些(也可能被我写的麻烦啦),比如正到负等,不知道大家都是怎么操作,我一般用这个取值都是只截取正的,所以这个实际操作还是非常简单的。
(2)splice 像数组中添加或者删除元素 arr.splice(m,n,index,index1,...,indexx) m是起始位置,n是删除元素的个数,index是要添加的元素,在不添加元素的前提下,只有第一个参数是必须的,后面两个都不是必须的,在需要添加元素的情况下,三个元素都是必须的,此方法和slice是不一样的,这个返回的是被删除的元素
示例如下:
只删除不添加
注意看此例,是(1,2)删除两个,如果是(1,0),则表示删除零个,也就是不删除的意思,如果只有一个参数则表示从这里开始删除,比如是(1)则为[2],当然这个也是可以取负值,但是这个和slice是不一样的,只能起始位置取负值,因为删除的个数不可能为负值,slice可以取(2,-1),这个就截然不同啦,但是刚刚也说啦,slice是不可以起始位置取负值,结束位置取正的,但是这个是可以的,比如(-1,0)则表示从-1开始删除零个,结果为[2,3,5,6,8,9],(-6,2),结果为[5,6,8,9],另外这个删除的第二个值如果写的过大,也只是删除从本下标到最后一个,比如(2,78)为[2,3]
var arr=[2,3,5,6,8,9]var arr1=arr.splice(1,2)console.log(arr) // [2,6,8,9] 注意看此处才是我们要的数组,从下标1开始删除删除两个console.log(arr1) //[3,5] 此处是我们删除掉的数组
删除加添加 具体的和上面的差不多,主要添加了添加元素的效果,这个也可以添加多个元素
var arr=[2,3,5,6,8,9]var arr1=arr.splice(1,2,"il")console.log(arr) //[2,"li",6,8,9] console.log(arr1) //[3,5]
总结:此方法用的时候,一般也都是只取正值
(3)substr 这个是字符串的用法 用法arr.substr(m,n) m必选也可以负值 n选填,注意看这个并不是结束为止而是截取的个数
示例如下:
只有一个参数 默认从此下标开始,取后面所有的
正值
var arr="sdhgfhf"var arr1=arr.substr(1)console.log(arr)// "sdhgfhf"这个是不变的,下面不再列举console.log(arr1)// "dhgfhf" 从下标1开始取后面所有的
负值
var arr="sdhgfhf"var arr1=arr.substr(-2)console.log(arr1)// "hf" 从下标-2开始取后面所有的
两个参数,从第一个下标开始,截取到下标2的长度
var arr="sdhgfhf"var arr1=arr.substr(1,3)console.log(arr1)// "dhg" 从下标1开始取后面所有的 同理如果为负值,比如(-6,3)则为"hjf";后面的始终为长度
总结:此方法需注意不要和数组的混淆,这个是截取长度的
(4)substring 用法arr.substring(m,n) 两个参数,m必须,起始位置 ,n选填,截取下标的结束位置,此用法和上面slice有点类似,但是需要注意的是此方法是不支持负值的
示例如下:
只有一个参数
var arr="sdhgfhf"var arr1=arr.substring(1)console.log(arr1)//"dhgfhf"从下标1开始取后面所有的
两个参数
var arr="sdhgfhf"var arr1=arr.substring(1,3)console.log(arr1)// "dh"从下标1开始截取到下标3,但是不包含3
总结:此方法不支持负值,只针对下标来截取的
最后,以上主要是总结的数组的一些简单的操作方法,学无止境,继续努力。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • js数组的权重概率分配方法介绍

    js数组的权重概率分配方法介绍

    js数组的权重概率分配方法介绍:今天写了一个js控制页面轮播的功能,如果仅仅使用队列很简单,但是考虑到为每一个页面分配权重的是否变的异常复杂,使用switch和if else也无法解决,于是想到使用js数组实现今天写了一个js控制页面轮播的功能,如果仅仅使用队列很简单,但是考虑到为每一个页
    查看详情
  • JS数组扁平化防抖与节流对象拷贝

    JS数组扁平化防抖与节流对象拷贝

    JS数组扁平化防抖与节流对象拷贝:这次给大家带来JS数组扁平化防抖与节流对象拷贝,JS数组扁平化防抖与节流对象拷贝的注意事项有哪些,下面就是实战案例,一起来看一下。数组扁平化数组扁平化有很多方法,但最终最好的方法就是递归,实现一个指定深度的扁平化方法,这样基本的套路都会了解。f
    查看详情
数组操作pop push shift unshift有什么区别 js数组哪些方法返回 JavaScript 如何统计一段时间内鼠标点击次数 JS定义一个函数,可以通过下标删除数组数据,返回... js数组中有哪些方法呢? js 类数组有push pop方法吗 最新版《幼儿园工作规程》是在哪年颁布 为什么有些规范2010颁布却写2016版 昨天刚办的建设银行卡怎么转出两笔五块钱 什么是建行 转出转账? 怎么把异地建设银行的卡里的钱转到另个卡上,不需要... 怎么把建行卡里的钱转到支付宝里 建行一户通怎么转出 建行信用卡现金怎么转出 建设银行信用卡钱怎样转出 建行快贷专用账户的钱怎么转出来? 建行整存整取 三个月钞 钱怎么取出来啊 建设银行挂失补到新卡后,原先卡里的钱要怎么转出来 建设银行卡里面的钱转不出来? 你好在吗建行里的投资理财的钱怎么转出来啊 JS中的 Array 类是否有 add方法 如何监听JS数组的变化 JavaScript 的限制,Vue 不能检测数组和对象的变化... JS里将函数赋值给变量和将函数名赋值给变量有什么... JavaScript 关于数组 shift()的问题 js如何把下面数组中的后2个移到数组前面去 JS几种数组遍历方式和性能分析对比 请问一个javascript的问题 Js中数组有哪些方法 JS有没有什么方法可以遍历数组全部项后 做出判断 js数组添加元素 以下选项中哪些属于原生 js 操作数组的方法 splice... 手机怎么清理卸载残留 手机卸载软件残留怎么清理 手机软件卸载残留的文件夹和文件怎么清理 怎么样才能清理手机内 手机软件删除后残余怎么清理 安卓手机怎样清除手机内存里的残留垃圾文件? 头上都是头皮屑,很大很多,如何去除 头上有大块头皮屑怎么办
Top