精华内容
下载资源
问答
  • 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更改对象属性名的方法

    千次阅读 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改变对象属性名方法

    千次阅读 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为属性改变后的数据

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

    展开全文
  • 一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON....

    有些时候,我们前端从后端拿过来的JSON对象数据,某些字段并不是前端想要的,需要对一些字段名进行重命名。一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。

    JSON.parse(JSON.stringify(data).replace(/title/g, ‘name’)) //data为数组,title为修改前,name为修改后
    let data=[
    { desc: ‘超清’,thumb:‘1’, code_url: ‘https://media.w3.org/2010/05/sintel/trailer.mp4’ },
    { desc: ‘高清’,thumb:‘2’, code_url: ‘http://vjs.zencdn.net/v/oceans.mp4’ },
    { desc: ‘标清’,thumb:‘3’, code_url: ‘https://media.w3.org/2010/05/sintel/trailer.mp4’ }]
    方法1:
    data.map(v=>{return {name: v.desc,url:v.code_url}})

    方法2:
    JSON.parse(JSON.stringify(data).replace(/name/g, ‘desc’).replace(/code_url/g, ‘url’))

    解释:
    1)JSON.stringify()把json对象转成json字符串;
    2)使用正则的replace()方法替换属性名;
    3)JSON.parse()把json字符串又转成json对象。

    展开全文
  • js高效修改对象数组里的对象属性名

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

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

    千次阅读 2020-01-14 22:49:17
    如何更改对象属性名 先使用JSON.stringify方法把对象转换成JSON格式,然后通过replace方法替换对应的属性名,可以用正则表达式来替换,/g表示全局替换该字符串 最后再通过JSON.parse方法把JSON格式转换成对象格式 ...
  • js修改数组对象里的对象属性名

    千次阅读 2020-12-08 11:03:20
    js修改数组对象里的对象属性名 有时候前端请求接口返回的数据,并不是我们想要的数据格式,一般我们会使用map等方法遍历修改属性名,但如果数据量很大或者数组对象的嵌套复杂,这种方法容易降低效率,下面我们使用...
  • js修改数组对象属性名

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

    万次阅读 多人点赞 2018-05-08 14:01:30
    一个json对象:var json = [ { "Id":"3972679ef2c04151972b376dd88e6413", "T_CourseId":"7a4494aae1804d3e94094583249750fe", "CourseName":"英语&...
  • javascript修改对象属性的正确姿势

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

    千次阅读 2020-06-22 13:38:44
    前言 修改对象属性 this.$set(this.data, "key", value) 删除对象属性 this.$delete(this.data, "key") 修改数组属性 this.$set(this.data, index, value) 删除数组属性 this.$delete(this.data, index)
  • JS修改对象属性的值

    千次阅读 2020-09-18 10:06:07
    当对象以数字为属性名时,其实就是一个数组,用[’’] var foo={1:'a',2:'b'} foo['1']='c' console.log(foo) // { 1: "c", 2: "b" } 当对象以字符为属性名时,直接用.获取属性值 ...可以存取对象属性值。
  • 修改对象属性的方法

    千次阅读 2019-09-23 23:36:22
    为了修改属性性,使用上一页中介绍的如果对象不具备你打算修改属性,...对象名后跟上方如果想要修改属性不存在,此动作会将括号,方括号里面是属性名称。这个属性添加给对象。 删除对象属性: 若要...
  • 修改对象属性值 List<LibraryDO> lib = list.stream().map(p -> {p.setId(p.getId() + 1);return p;}).collect(Collectors.toList()) /** * LibraryDO 对象 */ public class LibraryDO implements Serializable { /...
  • java反射之对象属性操作
  • 修改数组对象属性(key)

    万次阅读 2019-02-27 16:19:03
    例如:把如下data1的key名称修改成data2中的key名称 data1: [ { appName: '应用1', capacity: 233456 }, { title: '应用2', key: 124535 }] data2: [ { name: '应用1', value: 233456 }, { name: '应用2', value...
  • 改变 json 对象属性名

    千次阅读 2018-08-28 18:06:48
    改变一个json对象属性名 details.template是一个json 对象{} 里面有一个children:[] 现在我想把children 这个数组的属性名改为list 用 replace(/children/g, "list")) const template = JSON....
  • 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动态设置对象属性名与属性值

    万次阅读 2018-07-20 13:37:49
    动态给 object 添加属性名: “name1” 与属性值: "value1"。期望得到如下格式对象 object={ "name":value } 操作如下: let name = "name", value = value; object[name] ...
  • 当我this.$set修改对象属性竟然没有引发更新的时候我是崩溃的,我甚至开始怀疑起这个代码、这个编辑器甚至这个浏览器在针对我_(:з」∠)_ 最终原因是初始对象中没有这个属性时,我直接用 obj.attr= []; 新增了一...
  • vue 修改对象或数组的属性

    千次阅读 2019-06-21 18:10:27
    一、修改属性(包含新增属性) 1)对象的 mounted () { this.$set(this.data, "key", value) } 或者 var vm = new Vue({..}) vm.set(this.data, "key", value) 2)数组的 mounted () { this.$set(this.data...
  • js 对象数组添加属性修改属性

    万次阅读 2018-10-12 19:24:14
    //修改属性 return rObj; }); console.log(reformattedArray); var reformattedArray2 = kvArray.map(function(obj,index) { obj.id=index;//添加id属性 return obj;//如果不返回则输出: Array [undefined, ...
  • js改变对象属性名

    千次阅读 2018-05-25 14:47:30
    var arr = [ { "courseName": "语文", "code": "english" }, { "courseName": "数学", "...var a = JSON.stringify(arr).re
  • js 修改数组对象中的属性

    万次阅读 2019-07-13 17:14:41
    数据类型如下: var dataType=[{"type":"add",state":false},{"type":"update","state":false},{"type":"del","state":...分别修改: for(var i=0;i<dataType.length;i++){ if(dataType[i].type=="add"){ ...
  • 在小程序开发的过程中,我们总会少不了去用setData去拿数据,让数据驱动视图,我们可以把object、array、number、string、都能setData上去,我们也可以在下面操作它们,但是如果我们碰到更换对象中的其中一个属性值...
  • 属性名表达式 方法的name属性 属性简洁表达式 ES6中允许使用变量来作为属性和方法,书写更简便。 const foo = "bar"; const baz = { foo, } console.log(baz); {foo:"bar"} //等同于 ...
  • setState修改state里面对象属性的值

    千次阅读 2018-12-29 09:54:41
    修改state里面对象属性的值用Object.assign() Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,返回目标对象。 updateState=(value,keyName)=&amp;amp;amp;amp;amp;amp;amp;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,276,886
精华内容 510,754
关键字:

修改对象的属性名