猿站网:ES6 中那些被忽略的优雅方法

Array


1. find(value, index, arr)

在这类情形我须要推论两个字符串呢合乎许多方法论的前提

比如说须要推论[{id: 1}, {id: 2}, {id: 3}]中与否有所含合乎id=1的统计数据;

从前就要采用filter方式。

const array = [{id: 1, name: a}, {id: 2, name: b}, {id: 3, name: c}];
const isTrue = array.filter(obj => obj.id === 1).length;

不过在ES6中包涵了两个find方式, 事实上更典雅的读法如果是

constarray = [{id:1}, {id:2}, {id:3}];constisTrue = array.find(obj=>obj.id ===1);

find方式将会对字符串进行遍历,如果有合乎前提的统计数据将结束遍历并返回统计数据,没有的话返回undefined而不像filter完整的遍历完字符串。所以如果你只须要对统计数据进行bool推论或者拿两个统计数据时候, 建议采用find除了find还有两个方式是findIndex与find用法类似, 不过findIndex返回的是字符串成员的位置, 没有返回-1

这两种方式类似,看情形决定采用哪一种

2. from和[…obj]

Array.from 可以对类似字符串的对象转成字符串,比如说 DOM 中上传图片的input.files

事实上也可以采用[…]代替,而且更简洁。但是采用...必须对象实现了Iterator方式否则会报错。

采用场景: 从前如果上传多个文件须要显示所有文件的名字和进度的话,须要创建有两个存放相关统计数据的字符串

const array = [];
for (obj of input.files) { // for of 事实上也是对实现Iterator方式的对象遍历
  array.push(obj);
};
// from
const array = Array.from(input.files);
// ...
const array = [...input.files]; //cool
[...123] // [1, 2, 3];

3. fill();

如果我须要实现两个简单的桶算法的话, 比如说对范围在0-100的20个整数排序的话

我首先须要创建两个长度为101, 默认值为0的 字符串须要

const array = [];
for (let i = 0; i<101; i++) {
  array.push(0);
}

如果采用fill只须要

constarray =newArray(101).fill(0);

Array.fill(value)方式会对字符串填充字符串成员, 填充长度等于字符串长度

转自:http://www.jianshu.com/p/0f197e102b4f

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

猿站网:css设置td th的内容超出宽度打点点

2022-5-22 0:41:31

建站知识

猿站网:ES6中使用Set结构求数组的并差交集

2022-5-22 0:51:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索