sheng-tool
    Preparing search index...

    Function replaceValueFromObject

    • 将对象 / 数组中的某个值,或满足某个条件的值,替换成另一个值,或替换成基于原值计算出来的新值。

      当 from 不是函数时,使用深比较判断当前值是否命中;当 to 是函数时,默认会把命中的原值传进去计算替换结果。 该方法只克隆普通对象和数组,不会修改原对象 / 数组,并支持循环引用;克隆出来的对象图会保留原来的引用关系。

      Parameters

      • obj: any

        被转换的数组 / 对象

      • from: any

        某个值,或满足值的条件函数,此时接收 obj 中遍历到的当前值

      • to: any

        另一个值,或处理值的函数,此时接收命中的当前值

      • autoExecuteFunction: boolean = true

        当 from 和 to 是函数时,是否作为转换条件执行,默认为 true,对于替换函数的特殊场景时需要置为 false

      Returns any

      0.0.21

      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]