被转换的数组 / 对象
某个值,或满足值的条件函数,此时接收 obj 中遍历到的当前值
另一个值,或处理值的函数,此时接收命中的当前值
当 from 和 to 是函数时,是否作为转换条件执行,默认为 true,对于替换函数的特殊场景时需要置为 false
replaceValueFromObject({ x: 1 }, 1, 2) // { x: 2 }
replaceValueFromObject({ x: 1 }, { x: 1 }, 2) // 2
replaceValueFromObject({ x: { y: 1 } }, { y: 1 }, 2) // { x: 2 }
replaceValueFromObject({ x: { y: 1 } }, 1, 2) // { x: { y: 2 } }
replaceValueFromObject([1, 2, 3, 1], 1, '3') // ['3', 2, 3, '3']
replaceValueFromObject([NaN, NaN, 2, 3], NaN, '3') // ['3', '3', 2, 3]
replaceValueFromObject([1, 2, 3, 1], v => v % 2 === 0, '3') // [1, '3', 3, 1]
replaceValueFromObject([1, 2, 3, 1], v => v % 2 === 0, y => y + 10) // [1, 12, 3, 1]
将对象 / 数组中的某个值,或满足某个条件的值,替换成另一个值,或替换成基于原值计算出来的新值。
当
from不是函数时,使用深比较判断当前值是否命中;当to是函数时,默认会把命中的原值传进去计算替换结果。 该方法只克隆普通对象和数组,不会修改原对象 / 数组,并支持循环引用;克隆出来的对象图会保留原来的引用关系。