json从新排列问题 请求帮助 大神来
发布于 10 年前 作者 wuqing5828 5855 次预览 最后一次回复是 10 年前 来自 问答
[ [{“name”:“123”,“url”:“fdsfds”,“type”:“x”},{“name”:“123”,“url”:“fdsfds”,“type”:“y”},{“name”:“123”,“url”:“fdsfds”,“type”:“z”}], [{“name”:“123”,“url”:“fdsfds”,“type”:“x”},{“name”:“123”,“url”:“fdsfds”,“type”:“y”}] ]
将这个从新排按type分类排列
[ [{“name”:“123”,“url”:“fdsfds”,“type”:“x”},{“name”:“123”,“url”:“fdsfds”,“type”:“x”}], [{“name”:“123”,"ur"l:“fdsfds”,“type”:“y”},{“name”:“123”,“url”:“fdsfds”,“type”:“y”}], [{“name”:“123”,“url”:“fdsfds”,“type”:“z”}] ]
格式已经修改就这个意思 大神凑合着看
15 回复
先把上面的数据格式写正确吧。
大神还没来吗
三个数组对应type[x,y,z],遍历上面的,按照type,分别放入不同的数组。代码就不写了。
https://lodash.com/docs#sortBy
coordcn 3楼•40分钟前
三个数组对应type[x,y,z],遍历上面的,按照type,分别放入不同的数组。代码就不写了。
那xyz 只是我随便写的可能还有abc 只类的
遍历的但是无法分类 我试了好多方法了 都无法分类
就是按照json里的一个属性归类一起在排列出来
https://lodash.com/docs#sortBy 这个我看了还是没解决我的问题
var users = [ { ‘user’: ‘barney’, ‘age’: 36 }, { ‘user’: ‘fred’, ‘age’: 40 }, { ‘user’: ‘barney’, ‘age’: 26 }, { ‘user’: ‘fred’, ‘age’: 30 } ];
.map(.sortByAll(users, [‘user’, ‘age’]), _.values); // → [[‘barney’, 26], [‘barney’, 36], [‘fred’, 30], [‘fred’, 40]]
不是我要的结果 我要的结果可以是这样的
// → [[‘barney’, 26], [‘barney’, 36]],[ [‘fred’, 30], [‘fred’, 40]]
试试 http://github.com/alsotang/tableman 的 group 方法
lodash的flatten, groupBy, map可以搞定,参考: https://gist.github.com/xavierchow/342be76041980e36e663
一个笨办法
@alsotang benchmark不错,嘻嘻
用 tableman 的写法:
我没看之前的答案,有点长 :P 如果不想用其他的library,可以这样写(用reduce这些方法会更简单)
看看 lodash 一块钱卖不了吃亏买不了上当