var hasExcape = /~/var escapeMatcher = /~[01]/gfunction escapeReplacer (m) {switch (m) {case '~1': return '/'case '~0': return '~'}throw new Error('Invalid tilde escape: ' + m)}function untilde (str) {if (!hasExcape.test(str)) return strreturn str.replace(escapeMatcher, escapeReplacer)}function setter (obj, pointer, value) {var partvar hasNextPartfor (var p = 1, len = pointer.length; p < len;) {part = untilde(pointer[p++])hasNextPart = len > pif (typeof obj[part] === 'undefined') {// support setting of /-if (Array.isArray(obj) && part === '-') {part = obj.length}// support nested objects/array when setting valuesif (hasNextPart) {if ((pointer[p] !== '' && pointer[p] < Infinity) || pointer[p] === '-') obj[part] = []else obj[part] = {}}}if (!hasNextPart) breakobj = obj[part]}var oldValue = obj[part]if (value === undefined) delete obj[part]else obj[part] = valuereturn oldValue}function compilePointer (pointer) {if (typeof pointer === 'string') {pointer = pointer.split('/')if (pointer[0] === '') return pointerthrow new Error('Invalid JSON pointer.')} else if (Array.isArray(pointer)) {return pointer}throw new Error('Invalid JSON pointer.')}function get (obj, pointer) {if (typeof obj !== 'object') throw new Error('Invalid input object.')pointer = compilePointer(pointer)var len = pointer.lengthif (len === 1) return objfor (var p = 1; p < len;) {obj = obj[untilde(pointer[p++])]if (len === p) return objif (typeof obj !== 'object') return undefined}}function set (obj, pointer, value) {if (typeof obj !== 'object') throw new Error('Invalid input object.')pointer = compilePointer(pointer)if (pointer.length === 0) throw new Error('Invalid JSON pointer for set.')return setter(obj, pointer, value)}function compile (pointer) {var compiled = compilePointer(pointer)return {get: function (object) {return get(object, compiled)},set: function (object, value) {return set(object, compiled, value)}}}exports.get = getexports.set = setexports.compile = compile
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。