首页 > 其他分享 >VUE对象数组,和普通数组的常用方法

VUE对象数组,和普通数组的常用方法

时间:2022-11-16 17:47:54浏览次数:49  
标签:返回 常用 VUE keyword times item 数组 id

在VUE中也可以使用find,findIndex,map等方法对数组对象进行查询,赋值等操作,记录一下

定义数组对象 

var arrobj = [{"id":1,"keyword":"羽绒服","times":1000},{"id":2,"keyword":"棉衣","times":605},{"id":3,"keyword":"女装","times":589},{"id":4,"keyword":"童装","times":543},{"id":5,"keyword":"保暖内衣","times":489},{"id":6,"keyword":"外套","times":431}]

 


1. slice方法,获取数组中的指定位置的数据,该方法有两个参数,分别为开始索引和结束索引,结束索引如果大于总数会返回最开始索引值到最后的一条记录,如果开始索引值大于数组最大行数则会返回一个空数组,其中第二个参数可以为空,为空则返回索引值开始到最后一条的数据

代码1:返回索引0开始到索引值为2的结果(第二个参数要减1)

var newAarray = arrobj.slice(0, 3)

返回结果

[{id: 1, keyword: "羽绒服", times: 1001} {id: 2, keyword: "棉衣", times: 606} {id: 3, keyword: "女装", times: 590}]

代码2:返回从索引1到索引3-1的记录

var newAarray = arrobj.slice(1, 3)

返回结果

[{id: 2, keyword: "棉衣", times: 606} {id: 3, keyword: "女装", times: 590}]

代码3:返回从索引1开始到最后一条的记录

var newArray = arrobj.slice(1)

返回结果:

[{"id":1,"keyword":"羽绒服","times":1000},{"id":2,"keyword":"棉衣","times":605},{"id":3,"keyword":"女装","times":589},{"id":4,"keyword":"童装","times":543},{"id":5,"keyword":"保暖内衣","times":489},{"id":6,"keyword":"外套","times":431}]

代码4:索引值为负数,如下代码返回倒数第3行到倒数第二行的数据

arrobj.slice(-3,-2)

返回结果如下:

[{"id":4,"keyword":"童装","times":543}]

代码5:索引值为负数,不指定第二个索引值,返回倒数第3行开始到最后一行的数据

 

arrobj.slice(-3)

返回结果:

[{"id":4,"keyword":"童装","times":543},{"id":5,"keyword":"保暖内衣","times":489},{"id":6,"keyword":"外套","times":431}]

 

2. map方法,批量处理数据,如下代码,会将数组中所以对象的times值加1并且返回给新的对象,注意:map函数内部必须要有return 将数据返回 否则默认返回 undefined

let newArray = arrobj.map(item=>{
        return item.times += 1;
        });

执行后newArray的值为

[{id: 1, keyword: "羽绒服", times: 1001} {id: 2, keyword: "棉衣", times: 606} {id: 3, keyword: "女装", times: 590} {id: 4, keyword: "童装", times: 544} {id: 5, keyword: "保暖内衣", times: 490} {id: 6, keyword: "外套", times: 432}]

 

3. filter方法,根据条件过滤和查找,返回一个数组,如下代码,代码1会返回所有keyword中包含装的记录,代码2会返回所有id>10的记录,如果没有匹配到记录会返回空数组

代码1:

let newArray = arrobj.filter(item => item.keyword.indexOf("装") > -1)

执行后newArray的值为

[{"id":3,"keyword":"女装","times":589},{"id":4,"keyword":"童装","times":543}]

代码2:

let newArray = arrobj.filter(item=>item.id>10)

执行后newArray的值为

[]

 

3. forEach方法,用于遍历数组,可用于修改数组中对象的值,类似于map方法,但是forEach是没有返回值的,只能用于修改对象本身的值或者用于遍历,在forEach循环中是无法使用break和continue的,普通的for循环和while循环可以使用,要使用continue可以使用return,return方法会结束本次循环开始下一次循环,如下代码,用于遍历修改times的值

arrobj.forEach(item => {
        item.times += 1;
})

执行后,arrobj的数据变成如下

{id: 1, keyword: "羽绒服", times: 1001} {id: 2, keyword: "棉衣", times: 606} {id: 3, keyword: "女装", times: 590} {id: 4, keyword: "童装", times: 544} {id: 5, keyword: "保暖内衣", times: 490} {id: 6, keyword: "外套", times: 432}

 

4. fInd方法,用于查找满足条件的第一条数据,如果没有满足条件会返回undefind,如下代码,查找id=3的数据注意:find方法只会返回满足条件的第一条数据,如果要查找多条可以使用filter,

var obj = arrobj.find(item => item.id === 3)

执行结果:

{id: 3, keyword: "女装", times: 589}

 

5. findIndex 方法,用于查找满足条件的第一条数据的索引值,如果没有满足条件的数据会返回-1,如下代码,查找id=3的数据索引值,执行后会返回结果为:2

var obj = arrobj.find(item => item.id === 3)

执行如果: true

6. some 方法,用于判断数组中是否有数据满足条件(只要有一条数据满足则返回true),返回true或者false,类似Linq中的Any,以下代码,用于判断是否有搜索次数(times)>800次的记录

arrobj.some(item => item.times >= 800)

执行结果:true

7. every方法,与some方法相反,判断数组中是否所有数据都满足条件(数组中的数据都满足则舞蹈true),与LInq中的All方法类似,以下代码,用于判断数组中的数据搜索次数(times)>200

arrobj.every(item => item.times >= 200)

执行结果:true

8. indexOf方法,该方法用于查找指定的字符串在数组中的索引值,没有找到会返回-1.注意indexOf方法不使用对象的查询,比如arrobj.indexOf(item=>item.id===1),这个查询是会返回-1,实际上对像数组中是有这个的对像,如果是对象数组请使用find方法,indexOf只适用于字符串数组,数字数组等,该方法有两个参数,第一个参数是要查找的字符串或者数组,必填,第二个参数是查找的开始位置,选填,默认从0开始

定义字符串数组

var arrstr=["xx","bb","cc"]

定义数字数组

var arrnum=[1,3,5,7,9]

代码1:查找字符”bb"的位置

arrstr.indexOf("bb")

返回值为:1

代码2:查找字符串"b"的位置,注意字符串在数组中的位置是全匹配

arrstr.indexOf("b")

返回值为:-1

代码3:从位置2开始查找字符串"bb"的位置,因为“bb”的位置为1,所以从2开始查找是找不到的

arrstr.indexOf("bb",2)

返回为值为:-1

代码4:查找数字5 位置

arrnum.indexOf(5)

返回值为:3

9.includes方法,用于判断数组中是否包含了指定的字符串或者数字,该方法返回true,或者false,同indexOf方法一样不同用于对象数组,参数与indexOf一致

代码1:查找字符串"bb"在数组中是否包含

arrstr.includes("bb")

返回值为:true

 

标签:返回,常用,VUE,keyword,times,item,数组,id
From: https://www.cnblogs.com/ithome8/p/16896738.html

相关文章

  • pexpect常用API笔记
    pexpect常用API笔记spawn()spawn用来执行一个程序,它返回这个程序的操作句柄,以后可以通过操作这个句柄来对这个程序进行操作。参数以及默认值如下:classpexpect.spawn(......
  • 记录vue-pdf文件流预览出现空白的问题
    因为工作需要引用pdf插件,于是找到了vue-pdf,具体用法并不难,我先贴上代码:先引入组件importpdffrom'vue-pdf'布局如下:<pdf:src="pdf......
  • vue使用qrcodejs2进行二维码显示以及下载
    1、安装qrcodejs2npminstallqrcodejs2/yarnaddqrcodejs22、引入qrcodejs2importQRCodejsfrom'qrcodejs2';3、使用html:<divref="locatorQRCodeRef"></......
  • 解决Vue中使用history路由模式出现404的问题
    背景vue中默认的路由模式是hash,会出现烦人的符号#,如http://127.0.0.1/#/。改为history模式可以解决这个问题,但是有一个坑是:强刷新、回退等操作会出现404。Vue改用History......
  • EBS 常用sql
    1)查看请求挂在哪个状态下SELECTfcpv.concurrent_program_nameFROMfnd_request_groupsfrg,--请求组fnd_request_group_unitsfrgu,--请求单元......
  • vue入门
    Vue入门 一、什么是Vue#Vue(读音/vjuː/)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注......
  • 按需引入Ant Design Vue
     配置{"plugins":[["import",{"libraryName":"ant-design-vue","libraryDirectory":"es","style":"css"}]//`style:true`会加载less文件]......
  • 教你手写webpack常用loader
    前言webpack作为目前主流的前端构建工具,我们几乎每天都需要与它打交道。个人认为一个好的开源产品壮大的原因应该包括核心开发者的稳定输出以及对应生态的繁荣。对于生态......
  • Counting Rectangles(二维数组前缀和)
    题目链接题目描述:Youhave\(n\)rectangles,the\(i\)-threctanglehasheight\(h_i\)andwidth\(w_i\).Youareasked\(q\)queriesoftheform\(h_sw_sh_b......
  • 尚硅谷vue课程之模板语法
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......