黑马程序员技术交流社区
标题: [上海校区] ES6一些数组的新方法 [打印本页]
作者: 束玉杰 时间: 2019-12-6 09:25
标题: [上海校区] ES6一些数组的新方法
本帖最后由 束玉杰 于 2019-12-6 09:30 编辑
1.1 from,将一个数组或者类数组变成数组,会复制一份
[JavaScript] 纯文本查看 复制代码
let olfArr = [1,2,3]
let newArr = Array.from(olfArr);
console.log(newArr)
// [ 1, 2, 3 ]
1.2 Array.of,of是为了将一组数值,转换为数组
[JavaScript] 纯文本查看 复制代码
console.log(Array(3), Array(3).length); //[ <3 empty items> ] 3
console.log(Array.of(3), Array.of(3).length); // [ 3 ] 1
1.3 copyWithin,Array.prototype.copyWithin(target, start = 0, end = this.length) 覆盖目标的下标 开始的下标 结束的后一个的下标
[JavaScript] 纯文本查看 复制代码
let arr = [1, 2, 3, 4, 5].copyWithin(0, 1, 2)
console.log(arr)
// [ 2, 2, 3, 4, 5 ]
1.4 find,查到对应的元素和索引
[JavaScript] 纯文本查看 复制代码
let arr = [1, 2 ,3, 3, 4, 5];
let find = arr.find((item, index, arr) => {
return item === 3;
});
let findIndex = arr.findIndex((item, index, arr) => {
return item === 3;
});
console.log(find, findIndex);
// 3 2
1.5 fill,就是填充数组的意思 会更改原数组 Array.prototype.fill(value, start, end = this.length);
[JavaScript] 纯文本查看 复制代码
let arr = [1, 2, 3, 4, 5, 6];
arr.fill('a', 1, 2);
console.log(arr);
// [ 1, 'a', 3, 4, 5, 6 ]
1.6 map,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。
[JavaScript] 纯文本查看 复制代码
const map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.size // 2
map.has('name') // true
map.get('name') // "张三"
map.has('title') // true
map.get('title') // "Author"
1.7 reduce, Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算
[JavaScript] 纯文本查看 复制代码
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
1.8 filter,
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
回调函数
filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身
// 在一个Array中,删掉偶数,只保留奇数,可以这么写:
[JavaScript] 纯文本查看 复制代码
var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
return x % 2 !== 0;
});
r; // [1, 5, 9, 15]
// 把一个Array中的空字符串删掉,可以这么写:
var arr = ['A', '', 'B', null, undefined, 'C', ' '];
var r = arr.filter(function (s) {
return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
});
r; // ['A', 'B', 'C']
// 回调函数
var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
console.log(element); // 依次打印'A', 'B', 'C'
console.log(index); // 依次打印0, 1, 2
console.log(self); // self就是变量arr
return true;
});
1.9 forEach,
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:array.forEach(function(currentValue, index, arr), thisValue)
[JavaScript] 纯文本查看 复制代码
var arr = [1,2,3,4,5];
arr.forEach(function(e) {
console.log(e)
})
/*
1
2
3
4
5
*/
。
原文链接:https://blog.csdn.net/yrx6394610/article/details/86506995
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |