1
Cbdy 2017-02-28 00:56:53 +08:00 via Android
做成一个 b 树?
|
2
czheo 2017-02-28 03:33:50 +08:00
function search(id, data) {
data.forEach( d => { if (d.id == id) { console.log(d.value) } search(id, d.son) }) } search(46, data) |
3
vcfvct 2017-02-28 04:26:20 +08:00 via Android
放到 NoSQL 里面,随便 query 。 MongoDB , elastic search 什么什么的,都可以
|
4
XiaoFaye 2017-02-28 04:36:16 +08:00 1
整个 JSON 就是一个字符串,你直接 indexOf 不行吗?别把简单问题复杂化呀。
|
5
tomoya92 2017-02-28 07:45:04 +08:00 via Android
lodash?
|
6
spark 2017-02-28 09:52:50 +08:00
递归
|
7
lhstock 2017-02-28 10:07:10 +08:00
function a(data, id) {
var value; function forEachs(arr) { arr.forEach(function(d) { find(d, id); d.son != 0 && forEachs(d.son) // : find(d.sum); }) } function find(d, id) { if(d.id == id) { value = d.value } } forEachs(data); return value } console.log(a(data, 46)); |
8
genesischou 2017-03-03 18:15:06 +08:00
function search(array, id, temp) {
let data = array.concat(), result = temp || {}; data.forEach(item => { if (item.id === id) { result = item; return; } else if (Object.prototype.toString.call(item.son) === '[object Array]' && item.son.length) { result=search(item.son, id, result); } }) return result; } search(data, 46);//{ id: 46, value: 999879,son: [ { id: 12, value: 903, son: [] } ] } |