ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS/jQuery,给数组添加不同的键值,或将键合并到值内生成新数组

2021-01-21 11:57:54  阅读:194  来源: 互联网

标签:jQuery arr newarr 键值 数组 18 var type


JS,jQuery,给数组添加不同的键值

由于项目需要,遇到了服务器返回过来的数据是没有键值的数组,所以要进行处理,这就写了以下的这个demo
在这里插入图片描述
上面服务器返回的数据
要把它改成每组都带有键值的,而且键的,而且值就在值里面,
已知第一个值的键是不同的,第二个键是sourse

// demo没有服务器,就手动写一下原始数组
    var arr = [
      ["imsi:123456666", "备注2021年1月7日18:01:11"], 
      ["imsi:23344343243", "备注2021年1月7日18:00:44"], 
      ["msisdn:43243243243", "备注2021年1月7日18:00:44"], 
      ["imei:4324325657", "备注2021年1月7日18:00:44"]
    ]
    console.log(arr)
    var res = []
    //做个循环,一个个判断一下
    for (var i = 0; i < arr.length; i++) {
      //将每一个数组的第一个值取出来,冒号前面是键值所以这边要拆分
      var type = arr[i][0].split(':') 
      //拆分之后,写成带键值的数组,键值不同所以要判断处理下
      //不需要判断和拆分的话直接可以输出
      if (type[0] == 'msisdn') {
        var listdata = {
          msisdn: type[1],
          sourse: arr[i][1],
        };
      } else if (type[0] == 'imei') {
        var listdata = {
          imei: type[1],
          sourse: arr[i][1],
        };
      } else if (type[0] == 'imsi') {
        var listdata = {
          imsi: type[1],
          sourse: arr[i][1],
        };
      } else if (type[0] == 'mac') {
        var listdata = {
          mac: type[1],
          sourse: arr[i][1],
        };
      }
      //处理完放进准备好的空数组
      res.push(listdata)
    }
    //循环完毕就完成了
    console.log(res)

处理完成,看看输出结果
在这里插入图片描述
这样取值就会方便很多

反向操作一下,如果上传服务器只需要两个值,不带键的话,处理就比较简单

//反向处理一下
    //如果传到服务器的值需要把键和值合并处理的话,就用以下方法
    var newarr = [{ msisdn: "12344555", source: "备注2021年1月7日18:01:11" }
      , { msisdn: "2313132", source: "备注2021年1月7日18:00:44" }
      , { msisdn: "4234243242", source: "备注2021年1月7日18:00:44" }
      , { msisdn: "3131231233", source: "注2021年1月7日18:00:44" }]
    //先取出键值
    var aaa = Object.keys(newarr[0])[0]
    //再拿对键对应的值
    var bbb = newarr[0][Object.keys(newarr[0])[0]]
    //合并成新的字符串
    var ccc = aaa + ":" + bbb

    //直接单行写法
    //var ccc = Object.keys(newarr[0])[0] + ':' + newarr[0][Object.keys(newarr[0])[0]]

    //单个输出看看
    console.log("aaa= "+aaa)
    console.log("bbb= "+bbb)
    console.log("ccc= "+ccc)

    //全部处理的话就写一个循环
    var nRes=[]
    for (var i = 0; i < newarr.length; i++) {
      var ccc = Object.keys(newarr[i])[0] + ':' + newarr[i][Object.keys(newarr[i])[0]]
      //数组第二个值的键是统一的就不处理了,直接放
      var ddd = newarr[i].source
      var listdata = [ccc, ddd]
      nRes.push(listdata)
    }
    //输出看看
    console.log(nRes)

单个输出是这样的
在这里插入图片描述
可以看到每个数组的键和值都单独取出来了,然后就普通的合并起来
循环效果输出预览,这样就变回一开始拿到的数组了
在这里插入图片描述
希望能帮到大家快速完成工作吧:-D

标签:jQuery,arr,newarr,键值,数组,18,var,type
来源: https://blog.csdn.net/Amen_Klam/article/details/112919584

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有