精华内容
下载资源
问答
  • 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-18 10:44:31
    一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON...

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

    JSON.parse(JSON.stringify(data).replace(/title/g, 'name'))    //data为数组,title为修改前,name为修改后
    

    解释:1)JSON.stringify()把json对象转成json字符串;

              2)使用正则的replace()方法替换属性名;

              3)JSON.parse()把json字符串又转成json对象。

    展开全文
  • js修改数组对象属性名

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

    前言

    我是在用mui框架的picker选择器时,发现添加的数组不显示,仔细看才发现好像数组对象有固定的属性名称value和text,如下所示

    picker.setData([{value:'zz',text:'智子'}]);
    

    我从后台拿到的数组是这样的

    
      "listNote":[
            {
                "id":"001",
                "name":"已阅"
            },
            {
                "id":"002",
                "name":"同意"
            }
        ]
       
    

    所以需要改数组对象的属性名,id换为value,name换为text,找到了两种可用的方法如下。


    1.

    changeKey (arr, key) {
      let newArr = [];
      arr.forEach((item, index) => {
        let newObj = {};
        for (var i = 0; i < key.length; i++) {
          newObj[key[i]] = item[Object.keys(item)[i]]
        }
        newArr.push(newObj);
      })
      console.log(newArr)
      return newArr;
    }
    

    封装的方法changeKey ,arr为原数组,key为新数组的属性名列表,调用如下,我觉得这种方法可能会把属性名赋值反了。

    let brr= changeKey (listNote, ['value', 'text']);
    

    2.

    原文链接:https://blog.csdn.net/a13145211/article/details/105291748/

    我的问题解决如下

    let pickerData= [];
    listNote.forEach(item => {
                       pickerData.push({
                          text: item.name ,
                          value: item.id
                       });
                  });
    

    如果有多组不一样的属性名,如

     "listNote":[
            {
                "id":"001",
                "name":"已阅"
            },
            {
                "noteId":"002",
                "noteName":"同意"
            }
        ]
    

    则相应的在后面加上或,即name 或noteName属性的值都赋给名为text的属性

    let pickerData= [];
    listNote.forEach(item => {
                       pickerData.push({
                          text: item.name || item.noteName,
                          value: item.id  || item.noteId,
                       });
                  });
    
    展开全文
  • js改变对象属性名方法

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

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

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

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

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

    万次阅读 多人点赞 2018-05-08 14:01:30
    一个json对象:var json = [ { "Id":"3972679ef2c04151972b376dd88e6413", "T_CourseId":"7a4494aae1804d3e94094583249750fe", "CourseName":"英语&...
  • 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 修改数组对象中的属性

    万次阅读 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"){ ...
  • vue 如何修改数组中对象属性

    千次阅读 2020-01-26 16:28:44
    demo: methods: { handleClick: function(index){ this.$set(this.$data.items[index],'choosed',!this.$data.items[index].choosed) ...items是一个对象数组,每个对象有一个choosed字段 methods: { handleCli...
  • 在小程序开发的过程中,我们总会少不了去用setData去拿数据,让数据驱动视图,我们可以把object、array、number、string、都能setData上去,我们也可以在下面操作它们,但是如果我们碰到更换对象中的其中一个属性值...
  • 更改数组对象属性的参数

    千次阅读 2020-04-03 13:57:30
    网上写的那些烂七八糟的! let data1 = [ { appName: "应用1", capacity: 233456 }, { title: "应用2", key: 124535 } ]; let data2 = [];... 通过循环遍历,找到自己想要修改的参数。然后进行复制!
  • js动态设置对象属性名与属性值

    万次阅读 2018-07-20 13:37:49
    动态给 object 添加属性名: “name1” 与属性值: "value1"。期望得到如下格式对象 object={ "name":value } 操作如下: let name = "name", value = value; object[name] ...
  • 修改对象属性值 List<LibraryDO> lib = list.stream().map(p -> {p.setId(p.getId() + 1);return p;}).collect(Collectors.toList()) /** * LibraryDO 对象 */ public class LibraryDO implements Serializable { /...
  • private static Logger logger= LoggerFactory.getLogger(ObjectFieldUtil.class); /** ... * @return 修改对象属性值名称集合 */ public static List<String> getChangeList(Object o.
  • 场景: 比如后端返回给一个数组对象,但是名字不是我们想要的,我们可以修改key值变成我们想要的数组。 比如把下面的第一个数组中key值的名称改成第二个数组中key值的名称 arr: [ { name: '小太阳', year: 18}, { ...
  • 在微信小程序开发中数据与页面的绑定是靠data对象来实现的。如果要修改页面中某个变量的值,就需要使用this.setData({变量:值})。...但是如果要修改data中子对象属性值呢?一个很自然的想法是多点几次不就行了?比
  • 针对state为对象,想要修改对象中某一个值而不修改其他值,请欣赏接下来的方法 1.设置state对象 state={ datavalue:{ slid:'', name:'', memo:'', version:'', icon:defaultimg, loginlink:'', key:'', ...

空空如也

空空如也

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

修改对象所有属性名