ES6新增数组的方法

es6新增数组操作方法

在我们拿到后端数据的时候,可能会对数据进行一些筛选、过滤,传统的做法如下

// 取出数组中name为kele的数组集合
let a = [
  {
    name: 'kele',
    title: '可口可乐'
  },
  {
    name: 'kele',
    title: '芬达'
  },
  {
    name: 'hn',
    title: '红牛'
  }
]

let b = [];
for(let i = 0; i < a.length; i++){
  if( a[i].name === 'kele' ){
    b.push(a[i])
  }
}
console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]

es6中的数组处理方法如下

1,Array.filter(callback)

let b = a.filter(item => item.name === 'kele');

console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]

Array.filter()让我们摆脱了for循环,代码看起来更加的清爽!

2,Array.find(callback)

这个方法是返回数组中符合条件的第一个元素,否则就返回undefined

let a = [1,2,3,4,5];
let b = a.find(item => item > 2);
console.log(b)  // 3

传入一个回调函数,找到数组中符合搜索规则的第一个元素,返回它并终止搜索

const arr = [1, "2", 3, 3, "2"]
console.log(arr.find(item => typeof item === "number")) // 1

3,Array.findIndex(callback)

这个方法是返回数组中符合条件的第一个元素的索引值,否则就返回-1

let a = [1,2,3,4,5];
let b = a.findIndex(item => item > 2);
console.log(b) // 2 符合条件的为元素3 它的索引为2

找到数组中符合规则的第一个元素,返回它的下标

const arr = [1, "2", 3, 3, "2"]
console.log(arr.findIndex(item => typeof item === "number")) // 0

4.from(),将类似数组的对象(array-like object)和可遍历(iterable)的对象转为真正的数组

const bar = ["a", "b", "c"];
Array.from(bar);
// ["a", "b", "c"]

Array.from('foo');
// ["f", "o", "o"]

5.of(),用于将一组值,转换为数组。这个方法的主要目的,是弥补数组构造函数 Array() 的不足。因为参数个数的不同,会导致 Array() 的行为有差异。

Array() // []
Array(3) // [, , ,]
Array(3, 11, 8) // [3, 11, 8]

Array.of(7);    // [7]
Array.of(1, 2, 3); // [1, 2, 3]

Array(7);     // [ , , , , , , ]
Array(1, 2, 3);  // [1, 2, 3]

6、entries() 返回迭代器:返回键值对

const arr = ['a', 'b', 'c'];

for(let v of arr.entries()) {
 console.log(v)
}         // [0, 'a'] [1, 'b'] [2, 'c']

//Set
const arr = newSet(['a', 'b', 'c']);
for(let v of arr.entries()) {
 console.log(v)
}        // ['a', 'a'] ['b', 'b'] ['c', 'c']

//Map
const arr = newMap();
arr.set('a', 'a');
arr.set('b', 'b');
for(let v of arr.entries()) {
 console.log(v)
}      // ['a', 'a'] ['b', 'b']

8.keys() 返回迭代器:返回键值对的key

const arr = ['a', 'b', 'c'];

for(let v of arr.keys()) {
 console.log(v)
}    // 0 1 2

//Set
const arr = newSet(['a', 'b', 'c']);
for(let v of arr.keys()) {
 console.log(v)
}    // 'a' 'b' 'c'

//Map
const arr = newMap();
arr.set('a', 'a');
arr.set('b', 'b');

for(let v of arr.keys()) {
 console.log(v)
}     // 'a' 'b'

9,Array.includes(item, finIndex)

includes(),判断数组是否存在有指定元素,参数:查找的值(必填)、起始位置,可以替换 ES5 时代的 indexOf 判断方式。indexOf 判断元素是否为 NaN,会判断错误。

var a = [1, 2, 3];
let bv = a.includes(2); // true
let cv = a.includes(4); // false

10,...扩展运算符

可以很方便的帮我们实现合并两个数组

let a = [1,2,3];
let b = [4,5,6];
let c = [...a,...b];
console.log(c) // [1,2,3,4,5,6];

其它人写的参考:https://segmentfault.com/a/1190000019131088

(0)

相关推荐

  • javascript 数组 对象的一些方法记录

    记录一下常用的数组和对象的一些方法 数组 push() 数组后添加元素 // 作用:把一个元素或多个元素,从数组后面添加到数组里面: // 参数:添加的数据 // 返回:添加后的数组的长度: let ...

  • js数组方法(管饱)

    有一些数组方法是ECMAScript新增的,一定要注意浏览器的兼容!!Array对象属性:属性说明constructor返回对创建此对象的函数引用length返回集合内的元素的所有长度prototyp ...

  • 9个实用的JavaScript开发技巧,你必须知道一下

    WEB前端开发社区 昨天 从Web开发到机器学习再到应用程序开发,JavaScript拥有大量的应用程序列表. 幸运的是,JavaScript提供了可以方便使用的全面功能列表,但是,其中许多功能和ha ...

  • 前端笔试题——数组去重(保姆级手撕)

    引言: 对于传统的前端工程师来说,更多的只是把服务端响应的数据渲染到页面上. 随着前端的不断进化,算法对我们而言也日渐重要,大公司为了优中选优,经常也会用算法题去筛选更优秀的人才. 算法,或许在工作中 ...

  • JS 语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性

    大前端技术之路 14篇原创内容 公众号 新特性 ES6(2015) 1. 类(class) class Man {   constructor(name) {     this.name = '小豪' ...

  • js 高阶函数reduce ——数组取交集、并集

    两个数组取交集 vs 多个数组取交集 => js reduce函数的妙用 1.reduce函数的用法及取数组交集 <script> // 值集数组 let arr1 = [1,2] ...

  • 内置对象Array-2

    pop() 原文:MDN - pop() 功能:pop() 方法从数组中删除最后一个元素,并返回该元素的值.此方法更改数组的长度. 语法: arr.pop():返回从数组中删除的元素 返回值:一个新数 ...

  • 17个你可能还不知道 JS 技巧

    17个你可能还不知道 JS 技巧 原创前端小智2020-12-14 08:38:20 本文已经过原作者 Rahul 授权翻译! 1.三元运算符 新手 let hungry = true;let eat ...

  • 20个对JavaScript 开发人员的超级有用的技巧

    2021-09-07 JavaScript 是流行编程语言之一,也是许多开发人员最喜欢的语言之一.你可以用它构建 Web 或移动混合应用程序,甚至是机器人开发学习.该语言对于初学者来说,也不是那么困难 ...

  • JavaScript基础ES5/ES6常用数组方法汇总

    一.Array数组常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组 var a=[1,2,3] a.push(9); ...

  • 一种通用整形数组压缩方法

    我们在开发中后台应用或者中间件的时候,会存储一些数据在内存中以加快访问速度.随着数据量的增加,除了可以放置于堆外,还可以通过实时压缩来缓解.今天就给大家介绍一种压缩整形数组的方式. 一  数据压缩 数 ...

  • Excel一维数组转二维数组的方法

    excel使用技巧大全在前面我们已经讲过,读取数组中的数据都是连续的.但有时,一些数据是不连续的.这时我们应该怎么办呢? 例如,许多格式相同的sheet要合并在一起.我们想看每一个sheet的数据.此 ...

  • es6新增新特性简要总结

    es6简介 es6是在2015年6月正式颁布的新标准,es6基本上实现了所有ECMAScript 规范,以后每年的6月都会发布新版本,但改动不大. let 变量 使用let 关键字来申明的变量拥有以下 ...

  • JavaScript数组 - 其他方法

    数组的其他方法 1.concat(); 格式:数组.concat( 数组2 ); 功能:将两个数组合并成一个新数组,源数组不会被改变 返回值:我们合并好的数组 参数:我们要合并的数组 举个小例子: 运 ...

  • es6新增特性之函数参数默认值的优势-笔记

    ES6支持在定义函数的时候为其设置默认值: function foo(height = 50, color = 'red') { console.log(height); console.log(co ...

  • 【2020药典】分析方法确认、转移指导原则(新增)

    盛会汇聚国内外质量领域最具经验的实践专家和法规专家,基于国内外最新法规指南理念和监管形势解读,聚焦质量保证关键点,深耕关键技术细节. 篇首语  <中国药典>2020版较2015版新增分析方 ...

  • 学习理解Excel数组公式的2种方法

    对于初学者来说,数组公式也是够难理解的了,尤其是那些大型公式,看着头都大了!然而,如果我们能够在学习数组公式时,看到其计算过程,无疑会很有帮助. 方法1:使用F9键,查看数组公式的中间值 例如下图所示 ...

  • [js] 第119天 写一个方法把多维数组降维

    今日试题: 写一个方法把多维数组降维 此开源项目四大宗旨:勤思考,多动手,善总结,能坚持 <论语>,曾子曰:"吾日三省吾身"(我每天多次反省自己). 前端面试每日3+1 ...