javascriptx
Version:
javascript 基础库扩展
49 lines (40 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; // Object
var _getValue = require('./getValue');
var _getValue2 = _interopRequireDefault(_getValue);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var setValue = function setValue(object, field, value) {
var force = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
if (!field) {
object = value;
return object;
}
if (!object) {
object = {};
}
var fields = field.split ? field.split('.') : field;
var result = object;
for (var i = 0; i < fields.length - 1; i++) {
var key = fields[i];
if (_typeof(result[key]) === 'object') {
result = result[key];
} else {
if (force) {
result[key] = {};
result = result[key];
} else {
break;
}
}
}
var lastField = fields.pop();
var obj = (0, _getValue2.default)(object, fields.join('.'));
if (obj) {
obj[lastField] = value;
}
return object;
};
exports.default = setValue;