<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 题目:
现有 Json 数据,格式如下:
json = { "a": [ { "b": "c" } , ... ] , ... }; 请实现一个方法:get(json, "a[0].b"),使其返回值为 c。 要求:自己实现遍历逻辑,不允许使用正则表达式、不允许使用 eval()等类似 方法。
测试用例:
json = { "a": [ { "b": "c" }, "d" ], "x": 1} get(json, "a[0].b") == "c"
get(json, "a[1]") == "d"
get(json, "x") == 1 -->
</body>
<script>
const strpath = (index) => {
const reg = /[^.[\]]/g
let result = [];
index.replace(reg, function (key) {
if (key) {
result.push(key.trim())
}
})
return result
}
const get = (obj, index) => {
const basepsth = strpath(index);
let value = 0;
while (obj !== null && value < basepsth.length) {
obj = obj[basepsth[value++]]
}
return obj
}
const obj = {
a: {
b: {
c: 1
}
}
}
console.log(get (obj,'a[b].c'));
</script>
</html>
06-13
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交