reduce()

reduce函数接收一个函数作为累加器,reduce()方法对数组中的每个元素执行一个自定义函数(升序执行),然后将其结果返回为单个返回值
reduce() 可以接收四个参数

Accumulator (acc) (累计器): 累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue。

Current Value (cur) (当前值): 数组中正在处理的元素

Current Index (idx) 可选值(当前索引): 数组中正在处理的当前元素的索引。 如果提供了initialValue,则起始索引号为0,否则从索引1起始。

Source Array (src)可选值 (源数组): 调用reduce()的数组

initialValue可选值

作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。

<!-- 数组中数据相加示例  -->
const array1 = [1, 2, 3, 4, 7];
const reducer = (pre, cur) => pre + cur;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 15));

MDN文档及案例
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

includes()

检索一个字符串中是否包含某个值,返回值为布尔值,包含某个值返回true,否则为false

var str = 'special'
var search = str.includes('s)

浅拷贝 不污染源数据

cloneData(obj) {
    return JSON.parse(JSON.stringify(obj))
}
<!-- 调用拷贝接收即可 -->
let a = cloneData(result)