精华内容
下载资源
问答
  • Js 修改对象数组里的对象属性名

    千次阅读 2021-02-04 15:36:05
    // array为数组,old_name为修改属性名,new_name为修改属性名 JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 解释: JSON.stringify() 把json对象 转成 json字符串 使用正则的 ...

    假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。

    方法:
    // array为数组,old_name为修改前属性名,new_name为修改后属性名
    JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 
    
    解释:
    1. JSON.stringify() 把json对象 转成 json字符串
    2. 使用正则的 replace() 方法替换属性名
    3. JSON.parse() 再把json字符串 转成 json对象

    ·

    如需修改多个属性:

    可以多次调用replace方法

    JSON.parse(JSON.stringify(array).replace(/old_name1/g, 'new_name1').replace(/old_name2/g, 'new_name2').replace(/old_name3/g, 'new_name3'))
    
    展开全文
  • js改变对象属性名方法

    千次阅读 2019-04-19 11:33:56
    根据接口返回数据中number属性值,对数据进行截取,并改变属性名.直接上码: 下面是需要处理的数据 let data={"minValue":7400, "maxValue":"18500", "value":{ "value":[ ...

    根据接口返回数据中number属性值,对数据进行截取,并改变属性名.直接上码:

    下面是需要处理的数据

     let  data={"minValue":7400,
                        "maxValue":"18500",
                        "value":{
                                "value":[
                                        {"dmdDate":"2019-05","dmdAppValue":"9999"},
                                        {"dmdDate":"2019-06","dmdAppValue":"8888"},
                                        {"dmdDate":"2019-07","dmdAppValue":""}
                                        ],
                                "number":2
                                }
                        }

    根据number值对数据截取

    var num=data.value.number;// 2
    var arr=data.value.value.slice(0,num);

    改变属性的方法

    方法一:

    var arr2 = JSON.stringify(arr).replace(/dmdDate/g, "leftText").replace(/dmdAppValue/g, "value");
    console.log(arr2)   //  [{"leftText":"2019-05","value":"9999"},{"leftText":"2019-06","value":"8888"}]
    var arr3=JSON.parse(arr2)   
    console.log(arr3)  //arr3为属性名改变后的数据

    方法二:

    var key1="leftText",key2="value";
       for(var i=0;i<arr.length;i++){
            arr[i][key1]=arr[i].dmdDate
            arr[i][key2]=arr[i].dmdAppValue
            delete arr[i].dmdDate
            delete arr[i].dmdAppValue
        }
     //   console.log(key1,key2)
     console.log(arr)      //arr为属性改变后的数据

    总结:竟然实现了!  竟然实现了!  竟然实现了!

    展开全文
  • 在做东钿业务系统的时候,经常碰到写很多重复的ajax对接,于是就想封装一个方法,但是接收data的字段名不一样,所以就需要用到动态对象属性名这个写法了。其实很简单。直接看一下代码吧。 转载于:...

    在做东钿业务系统的时候,经常碰到写很多重复的ajax对接,于是就想封装一个方法,但是接收data的字段名不一样,所以就需要用到动态对象属性名这个写法了。其实很简单。直接看一下代码吧。

    转载于:https://www.cnblogs.com/qiao20/p/8397781.html

    展开全文
  • js更改对象属性名的方法

    千次阅读 2020-05-27 15:52:02
    动态修改name为text,userName也修改为text,userList为children 处理方法: 方案一:封装copyTransFunc方法,参数有两个,一个是arr,一个是数组,数组里可以配置修改的key和替换的value,支持多个 // 将arr对象中...

    数据格式如下:

    let arr = [
        {
            "id": 275,
            "name": "测试公司",
            "userList": [
                  {
                      "id": 697,
                      "userName": "11111"
                  }
             ]
         }, {
             "id": 327,
             "name": "有限公司",
             "userList": [
                   {
                       "id": 743,
                       "userName": "张三"
                    }, {
                        "id": 744,
                        "userName": "李四"
                    }
               ]
          }
    ];

    问题一:动态修改name为text,userName也修改为text,userList为children

    处理方法:

    方案一:封装copyTransFunc方法,参数有两个,一个是arr,一个是数组,数组里可以配置修改的key和替换的value,支持多个

    // 将arr对象中的name键改为text、userName键改为text、userList键改为chilren
                console.log(this.copyTransFunc(arr, [{ key: "name", value: "text" }, { key: "userName", value: "text" },{ key: "userList", value: "chilren" }]));
    
    
    
    copyTransFunc (obj, typeArr) {
                    let result;
                    let toString = Object.prototype.toString;
                    if (toString.call (obj) === '[object Array]') {
                        result = [];
                        for (let i = 0; i < obj.length; i++) {
                            result[i] = this.copyTransFunc (obj[i], arguments[1])
                        }
                    } else if (toString.call (obj) === '[object Object]') {
                        result = {};
                        for (let _key in obj) {
                            if (obj.hasOwnProperty (_key)) {
                                let flag = 0, _value = null;
                                for (let j = 0; j < arguments[1].length; j++) {
                                    if (arguments[1][j].key === _key) {
                                        flag = 1;
                                        _value = arguments[1][j].value
                                    }
                                }
                                if (flag)
                                    result[_value] = this.copyTransFunc (obj[_key], arguments[1]);
                                else
                                    result[_key] = this.copyTransFunc (obj[_key], arguments[1])
                            }
                        }
                    } else {
                        return obj
                    }
                    return result
                }

    方案二:递归解决

    copyTransFun (arr) {
                    arr.forEach ((item) => {
                        if (item.name) {
                            item.text = item.name;
                            delete item.name;
                        }
                        if (item.userName) {
                            item.text = item.userName;
                            delete item.userName;
                        }
                        if (item.userList) {
                            item.children = item.userList;
                            delete item.userList;
                            if (item.children.length) {
                                this.copyTransFun (item.children);
                            }
                        }
                    });
                },

    方案三:处理两级情况

    //处理只有两级情况
    let col = [];
                arr.forEach((item, index) => {
                    col.push({
                            id: item.id,
                            text: item.name,
                            children: item.userList,
                        },
                    );
                });
                col.forEach((_item, _index) => {
                    if (_item.children && _item.children.length) {
                        _item.children.forEach((item, index) => {
                            if (Object.getOwnPropertyNames(item).length) {
                                item.id = item.id;
                                item.text = item.userName;
                            }
                        })
                    }
                });

     

     

    交流

    1、QQ群:可添加qq群共同进阶学习: 进军全栈工程师疑难解  群号:   856402057

    2、公众号:公众号「进军全栈攻城狮」 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!

                                                      

     

     

    展开全文
  • js 更改对象属性名

    千次阅读 2020-09-16 10:02:04
    var obj = [ { "name":"zhangsan", "age":20 }, { "name":"lisi", "age":22 } ] var newObj = JSON.parse(JSON.stringify(obj).replace(/name/g, 'title')) 如果value和key同名,有问题 ... item ...
  • js高效修改对象数组里的对象属性名

    千次阅读 2019-04-18 10:44:31
    一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON...
  • JS遍历对象修改属性名

    千次阅读 2021-01-05 13:57:45
    根据接口返回数据中number属性值,对数据进行截取,并改变属性名. 下面是需要处理的数据 let data = {  value: [  {date: "2021-01", thumb: "1", index: "1"},  {date: "2021-02", thumb: "2", index: "2"},  {...
  • 一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON....
  • javascript修改对象属性的正确姿势

    千次阅读 2019-01-24 10:20:28
    修改对象属性前言Object.assign()...扩展运算符 前言 eslint有一条规则no-param-reassign,意思是禁止修改函数的属性。 若函数的属性是对象,此时不能修改对象属性。有什么方法呢? 方法有二种,如下: var obj = { ...
  • js修改数组对象属性名

    千次阅读 2020-11-02 15:54:19
    我是在用mui框架的picker选择器时,`发现添加的数组不显示,仔细看才发现好像数组对象有固定的属性名称value和text,如下所示 picker.setData([{value:'zz',text:'智子'}]); 我从后台拿到的数组是这样的 ...
  • js修改数组对象里的对象属性名

    千次阅读 2020-12-08 11:03:20
    js修改数组对象里的对象属性名 有时候前端请求接口返回的数据,并不是我们想要的数据格式,一般我们会使用map等方法遍历修改属性名,但如果数据量很大或者数组对象的嵌套复杂,这种方法容易降低效率,下面我们使用...
  • 今天小编就为大家分享一篇vue修改对象属性值后页面不重新渲染的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • js 更改对象中的属性名

    千次阅读 2019-07-22 17:30:52
    网上大多是利用JSON转为字符串再进行替换修改属性名 var bbb = JSON.parse(JSON.stringify(aaa).replace(/Name/g,"title")); 这样做会有2个缺点,1.如果属性值匹配到会被更改 2.属性名中有部分匹配到也会被更改 ...
  • JS修改对象属性的值

    千次阅读 2020-09-18 10:06:07
    对象以数字为属性名时,其实就是一个数组,用[’’] var foo={1:'a',2:'b'} foo['1']='c' console.log(foo) // { 1: "c", 2: "b" } 当对象以字符为属性名时,直接用.获取属性值 var bar = {a:1,b:2,c:3} bar.a= '...
  • 本篇文章主要是对javascript动态添加、修改、删除对象属性与方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
  • 在我们开发的过程中,后端返回的字段可能和我们组件复用的字段名字不同,这时候为了更方便的开发,我们采用修改后端返回的对象字段来匹配组件中的对象字段 第一种正则匹配替换 <script> var obj = { id: 1, ...
  • 更改对象属性名js

    2018-12-11 09:43:53
    文章来自:源码在线https://www.shengli.me/javascript/402.html    
  • 文章目录 前言 Object.defineProperty() Proxy Proxy...结语 虽然Object.defineProperty()和proxy都能实现对象属性的自定义,但是proxy作为es6新出现的特性,它的功能比defineProperty 更加丰富使用起来也更加灵活。
  • js代码-扩展运算符删除对象属性
  • JS操作对象属性(获取、添加、删除、修改对象属性) 属性也称为名值对,包括属性名和属性值。属性名可以是包含空字符串在内的任意字符串,一个对象中不能存在两个同名的属性。属性值可以是任意类型的数据。 1. 直接...
  • js修改数组对象属性(key)

    万次阅读 2019-03-15 15:46:40
    例如:把如下data1的key名称修改成data2中的key名称 data1: [ { appName: '应用1', capacity: 233456 }, { title: '应用2', key: 124535 }] data2: [ { name: '应用1', value: 233456 }, { name: '应用2', ...
  • 目标:js属性名可以使用变量 举例:js对象object,当赋给该对象属性的时候可以采用以下方式 代码如下: var object; object.prop1 = “value1”; object.prop2 = “value2”; 也可以采用如下方式: 代码如下: ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">...js</title> </head> <body> <script> var json = [ { ...
  • js循环遍历树形结构对象修改属性名

    千次阅读 2021-03-25 19:37:33
    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> const data =[ ... sort..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 329,920
精华内容 131,968
关键字:

js修改对象属性名