array note

Array

concat()

  • 复制一个全新的数据
  • 修改复制的数据不会造成原始数据变化
const a = [1,2,3];
const b = a.concat();
console.log(b);
// [1,2,3]

from()

  • 将类数组对象转化为真实的数组
let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

const arr = Array.from(arrayLike);
console.log(arr);
// ['a','b','c']
// DOM 对象也是一个类数组对象
const ps = document.querySelectorAll('p');
const nodeList = Array.from(ps);

Set()

  • 数组去重,但是不能对数组对象进行去重
const arr = [1,2,3,1];
const newArr = new Set(arr);
console.log(newArr);
// [1,2,3]

// 无法对以下数组进行去重
const arr = [{id:1,name:'a'},{id:1,name:'b'}];

some(callback)

  • 根据函数给出的匹配要求进行遍历
  • 匹配到后返回 true,并终止当前遍历。无匹配项时返回 false
  • 不会对空数组进行遍历
  • 不会改变原数据
var arr = [1,2,3,4,5,6];
arr.some(item => (item > 3));
// true

filter(callback)

  • 遍历数组,根据函数要求返回匹配项
  • 不会对空数组进行遍历
  • 不会改变原数据
var arr = [1,2,3,4,5,6];
arr.filter(item => (item > 3));
// [4,5,6]

reduce(callback, initialValue)

  • 接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
  • callback(previousValue, currentValue, index, array)
    • previousValue: 上一次调用的返回值,或者是提供的初始值“initialValue”
    • currentValue: 当前调用的值
    • index: 当前值的索引
    • array: 当前值调用的数组
const arr = [1,2,3,4];
arr.reduce((previousValue, currentValue, index, array) => {
	retrun previousValue + currentValue;
}, initialValue)
// 10

map(callback)

  • 返回一个新数组,数组中的元素为原始数据处理后的值
  • 不会对空数组进行遍历
  • 不会改变原数据
const arr = [1,2,3,4];
arr.map(item => item + 1);
// [2,3,4,5]

forEach(callback)

  • 将数组的每项元素传入回调函数
  • 不会对空数据进行遍历
const arr = [1,2,3,4];
const newArr = [];
arr.forEach(item => newArr.push(item + 1))
console.log(newArr);
// [2,3,4,5]
posted @ 2018-07-12 16:58  阿水的世界  阅读(97)  评论(0编辑  收藏  举报