UNPKG

javascriptx

Version:

javascript 基础库扩展

49 lines (40 loc) 1.45 kB
'use strict'; 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;