实现修改对象属性值的方法

409 阅读1分钟

题目一

let obj = {
  a: {
    b: {
      c : 0
    }
  }
}
setValue(obj, ['a','b','c'], 1)
setValue(obj, 'a.b.c', 1)
实现修改属性值的方法

最简单版

function setValue (obj, params, value) {
  let arr = []
  arr = Array.isArray(params) ?  params : params.split('.')

  arr.forEach((item, index, array) => {
    if(index == arr.length - 1) {
      obj[item] = value
    } else {
      obj = obj[item]
    }
  });
}

console.log(obj)

lodash.js set 如何实现?

…… 待续