数组中元素的操作

const arr = [1, 2, 3, 4];
this.removeByValue(4);
console.log(arr); // [1, 2, 3]
this.addByValue(6);
console.log(arr); // [1, 2, 3, 6]
复制代码

1、关于数组元素的减少

removeByValue = (val) => { // 减少指定的数组元素for (let i = 0; i < arr.length; i += 1) {if (arr[i] === val) {this.arr.splice(i, 1);return;}}}复制代码

2、数组的元素为对象时,可以根据唯一key,来进行确认减少(比第一种简便)

const newData = this.arr.filter(item => item.key !== key);
复制代码

3、关于数组元素的增加

 addByValue = (val) => { // 增加元素this.arr.push(val);}
复制代码

4、有数组中,取出key值为K的对象元素

const target = arr.find(item => item.key === no);
复制代码

5、两个数组之间,进行相关的操作

const arr1 = [1,2,3];const arr2 = [3,4,5];// 并集const union = Array.from(new Set([...arr1,...arr2]));    // union = [1,2,3,4,5]// 交集const intersection = Array.from(new Set([...arr1].filter(x => new Set(arr2).has(x))));   // intersection = [3]// 差集const difference1 = Array.from(new Set([...arr1].filter(x => !new Set(arr2).has(x))));    // difference1 = [1,2]const difference2 = Array.from(new Set([...arr2].filter(x => !new Set(arr1).has(x))));    // difference2 = [4,5]
复制代码

6、置换数组之间的位置(实战:在table中,可以置换位置)

  • 置换函数:
  swapItems = (arr, index1, index2) => {const arrData = arr;arrData[index1] = arrData.splice(index2, 1, arrData[index1])[0];return arr;}
复制代码
  • 向前移动(在表格中展示为向上移动)
upRecord(no) {const newData = this.state.selectedMaterialList.slice(0);const target = newData.find(item => item.key === no);const index = newData.indexOf(target);if (index === 0) {message.warn('此模板为第一条,无法上移', 1.5);} else {const data = this.swapItems(newData, index, index - 1);this.setState({ selectedMaterialList: data });}}
复制代码
  • 向前移动(在表格中展示为向上移动)
downRecord(no) {const newData = this.state.selectedMaterialList.slice(0);const target = newData.find(item => item.key === no);const index = newData.indexOf(target);if (index === newData.length - 1) {message.warn('此模板为最后一条,无法下移', 1.5);} else {const data = this.swapItems(newData, index, index + 1);this.setState({ selectedMaterialList: data });}}
复制代码

记前端知识--数组元素的相关操作相关推荐

  1. HTML5 DOM元素类名相关操作API classList简介(转载自张鑫旭大神)

    一.其实事情的发展就像切水果 如果我们把元素的类名操作比作"切水果"游戏的话,其中一个单独的类名就好比"水果"或"炸弹"! DOM Leve ...

  2. HTML5 DOM元素类名相关操作API classList简介

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=3483 一.其实事情 ...

  3. 前端js数组元素的筛选,修改,新增属性小技巧一---前端数据筛选filter()函数,更新数组map()函数;

    举个简单的例子(对数组的筛选,比如说3的倍数的值取出来): var a = [1,2,3,4,5,6,7];a = a.filter(function(value){var flag = true;i ...

  4. pymongo查询列表元素_pymongo相关操作

    导入库,建立连接 a. from pymongo import MongoClient b. client = MongoClient(host,port) 创建数据库 myDB (应该叫连接数据库, ...

  5. selenide 自动化测试进阶一: 查找元素和相关操作

    基础环境配置和举例请移步:https://www.cnblogs.com/davice/p/9298742.html 提到自动化有些测试同学就会问,我会使用工具录制做自动化,我会用工具或插件识别元素. ...

  6. 【前端】数组元素过滤

    先定义一个数组: const ages = [23, 26, 25, 22, 25, 22, 23, 22, 15]; 最普通的遍历输出: // forEach companies.forEach(f ...

  7. 前端需要了解的PS相关操作

    目录 1,ps的认识 2,新建文件 3,图层:上面的覆盖下面的 4,矩形选框工具 5,前景色和后景色 6,吸管工具 7,移动工具 8,返回上一步 ctrl+z 9,放大镜和抓手工具 10,图片的格式 ...

  8. bash shell 数组元素遍历操作 foreach

      #数组元素遍历 foreach 操作 #参数:1数组; 2 回调函数(用户定义); 3用户数据参数(可选) #回调函数: 对数组每个元素调用该函数 # 回调函数参数: 参数:1元素在数组中的下标( ...

  9. java分配数组空间使用的关键字_创建数组时为数组元素分配内存空间的 Java 关键字是________(5.0分)_学小易找答案...

    [填空题]若已有数组说明"char s[];",则创建 20 个字符的数组的语句是s=______________; (5.0分) [单选题]下列关于数组的描述错误的是(3.0分) ...

最新文章

  1. 预测性智能的力量:AI 和机器学习将如何改变美国政府决策?
  2. rot90--矩阵旋转
  3. 撰写第三周课程总结及实验报告(一)
  4. BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。...
  5. Java 中的某些方法为什么要求传入一个 Class 对象
  6. linux .forward,linux forward的实现
  7. mac版mysql 1290_Mac 终端下mysql load data infile 文件路径 into table 表名称 操作,[Error Code] 1290 - The MyS...
  8. npm 报错: npm ERR! code ERESOLVE , npm ERR! code E404
  9. 如何以nobody用户执行命令?
  10. navicat远程连接mysql,2003 can't connect to mysql server on 10038
  11. 我与51CTO的战争之值得尊敬的对手
  12. 学习shell script
  13. 在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案...
  14. QTTabBar 使用教程:用浏览器的方式管理 Windows 资源管理器
  15. 刚体运动学公式_刚体的运动学与动力学问题 (二)
  16. python英文单词记忆游戏单词爆破机
  17. 常见分布的数学期望和方差
  18. Tikhonov regularization 吉洪诺夫 正则化
  19. 在Unity3d项目中利用Udp进行局域网内通信
  20. offer_II_109开密码锁

热门文章

  1. php如何根据ip查找地址,根据IP地址查找IP所在地
  2. linux二进制数据16进制数据转换,[轉]16进制字符文本/二进制文件迷你互转器
  3. java皮肤_java程序的皮肤效果实现代码
  4. python把数字阿拉伯数字转换成中文10以内_Python实现把数字转换成中文
  5. java http 返回json_java发起http请求获取返回的Json对象方法
  6. java检测用户是否重复登录_Java web工程判断用户是否重复登录
  7. 3d环形图片展示 js_网易公开课Three.js实践 勋章系统
  8. 报错,o.h.engine.jdbc.spi.SqlExceptionHelper   : Unknown column ‘template_name‘ in ‘field list‘
  9. rzsz上传下载命令
  10. 2021-9-30 Python Teaching Note