经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JSON » 查看文章
JSON格式提取相同属性的某个值
来源:cnblogs  作者:藏大大  时间:2019/8/29 8:50:23  对本文有异议
  1. [
  2. {UID:"222",value:"111"},
  3. {UID:"222",value:"103"},
  4. {UID:"123",value:"302"},
  5. {UID:"123",value:"031"}
  6. ]
  7. 改成[
  8. {UID:"222",value:"111,103"},
  9. {UID:"123",value:"302,031"}
  10. ]
  11. function handle(arr) {
  12. var res = [],
  13. obj = {},
  14. index = 0;
  15. arr.forEach(val => {
  16. if (obj.hasOwnProperty(val.UID)) {
  17. res[obj[val.UID]].value = res[obj[val.UID]].value + ',' + val.value;
  18. } else {
  19. obj[val.UID] = index++;
  20. res.push({
  21. UID: val.UID,
  22. value: val.value
  23. });
  24. }
  25. });
  26. return res;
  27. }
  28. var arr = [{
  29. UID: "222",
  30. value: "111"
  31. }, {
  32. UID: "222",
  33. value: "103"
  34. }, {
  35. UID: "123",
  36. value: "302"
  37. }, {
  38. UID: "123",
  39. value: "031"
  40. }]
  41. console.log(handle(arr))

思路:

1.创建一个新的数组存放结果

2.创建一个空对象

3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。

说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。

本文 转载自 segmengDefault  和 脚本之家

原文链接:http://www.cnblogs.com/1212dsa/p/11425930.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号