From c55dcda3e667aac0483b64a4a3699b55b4e84eec Mon Sep 17 00:00:00 2001 From: "luk.lu" Date: Tue, 9 Aug 2022 16:56:20 +0800 Subject: [PATCH] u --- coretool.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/coretool.js b/coretool.js index d5791bf..71d850c 100644 --- a/coretool.js +++ b/coretool.js @@ -237,35 +237,32 @@ module.exports = { read_varchain (path, root) { let parent = root || globalThis || global || window || {} - let names = path.split('.') - for (var i in names) { - if (typeof parent === 'object' && names[i].match(/^\w+\(\)$/) && typeof parent[names[i].substring(0, names[i].length - 2)] === 'function') { + let keychain = path.split('.') + for (let key of keychain) { + if (typeof parent === 'object' && key.match(/^\w+\(\)$/) && typeof parent[key.substring(0, key.length - 2)] === 'function') { // 支持 xxx.myfunc().yyy 的函数形式作为一个路径节点。 - parent = parent[names[i].substring(0, names[i].length - 2)]() - } else if (typeof parent === 'object' && names[i].match(/^\w+$/) && typeof parent[names[i]] != 'undefined' && parent[names[i]] != null) { - parent = parent[names[i]] + parent = parent[key.substring(0, key.length - 2)]() + } else if (typeof parent === 'object' && key.match(/^\w+$/) && typeof parent[key] != 'undefined' && parent[key] != null) { + parent = parent[key] } else { return undefined } } - if (parent === null || parent === undefined || isNaN(parent) || typeof parent === 'number') { - return undefined - } return parent }, set_varchain (path, root, value) { var parent = root || global || window || {} - var names = path.split('.') - for (var i = 0; i < names.length - 1; i++) { - if (typeof parent === 'object' && names[i].match(/^\w+$/)) { - if (typeof parent[names[i]] !== 'object') parent[names[i]] = {} - parent = parent[names[i]] + var keychain = path.split('.') + for (let i = 0; i < keychain.length - 1; i++) { + if (typeof parent === 'object' && keychain[i].match(/^\w+$/)) { + if (typeof parent[keychain[i]] !== 'object') parent[keychain[i]] = {} + parent = parent[keychain[i]] } else { return null } } - return (parent[names[names.length - 1]] = value) + return (parent[keychain[keychain.length - 1]] = value) }, /**