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