前端在部分业务下会有一种场景,需要修改某个对象单独的属性或值且修改后立即生效(如页面缓存、样式布局DIY调整配置),当这个对象是3维或者3维以上时,且传参的数据不一致,如果配置项较多,死方法就是每个对象都去一遍(比较愚蠢的写法)这个时候的代码量就比较多,那么如何减少这个代码量呢??下面我就写了一个函数,可以通过固定代码即可达到减少代码量const setValue = function(data, key, value) { if ('object' !== typeof data) { return null } if (key.indexOf('.') > 0) { let index1 = key.split('.')[0]; let index2 = key.replace(new RegExp('^' + index1 + '\.', 'g'), ''); if (data.hasOwnProperty(index1)) { data[index1] = setValue(data[index1], index2, value); } return data; } else { if (data.hasOwnProperty(key)) { data[key] = value } return data }}