精华内容
下载资源
问答
  • 修改对象名称
    千次阅读
    2021-12-24 14:22:42

    代码

    // 更改对象属性名
    // 第一个参数为要更改的对象,第二个参数为属性名映射数组
    // 如将属性名为 “日期” 更改为 "date" : [{ key: '日期', value: 'date' }]
    export function 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] = 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] = copyTransFunc (obj[_key], arguments[1]);
                    else
                        result[_key] = copyTransFunc (obj[_key], arguments[1])
                }
            }
        } else {
            return obj
        }
        return result
    }
    

    使用

    import { copyTransFunc } from '@/utils/formatDataKey.js'
    ......
    let keyMapping = [
              { key: '日期', value: 'date' },
              { key: '岗位', value: 'station' },
              { key: '工单号', value: 'workOrder' },
              { key: '工作内容', value: 'tasks' },
              { key: '工作时长', value: 'workHours' },
              { key: '开始时间', value: 'startWorkTime' },
              { key: '结束时间', value: 'endWorkTime' },
            ]
    // 更改excel数据属性名
    this.excelData = copyTransFunc(this.excelData, keyMapping)
    

    ES10版

    let obj = {
        '日期':'2023',
        '年龄':{
            a:12,
            b:23,
        },
        '身高':[12,4,5,6],
        '体重':78
    }
    
    let keymapping = [
        {key:'日期',newKey:'date'},
        {key:'体重',newKey:'weight'},
        {key:'身高',newKey:'tall'}
    ]
    
    function changeKey2(obj,kepmapping){
        let oldKeysArr = Object.keys(obj)
        let arr = Object.entries(obj)
        let changedKeyIndex = []
        keymapping.forEach(item=>{
            if(oldKeysArr.indexOf(item.key)!==-1){
                arr[oldKeysArr.indexOf(item.key)][0] = item.newKey
            }
        })
        return Object.fromEntries(arr)
    }
    
    console.log(changeKey2(obj,keymapping))  
    //  {"date":"2023","年龄":{"a":12,"b":23},"tall":[12,4,5,6],"weight":78}
    
    更多相关内容
  • 通过JSON+正则修改对象属性 JSON.parse(JSON.stringify(list).replace(/title/g, 'name')) 1.JSON.stringify()将json对象转为JSON字符串 2.使用正则的replace(/title/g, 'name'))方法将tilte替换为name 3.JSON....

    最近看到一个面试题要求如下:

    将数组中所有id变为code,所有title变为name

    <script>
    const list = [{
        id: 'a',
        title: 'A'
    }, {
        id: 'b',
        title: 'B',
        children: [{
            id: 'c',
            title: 'C'
        }, {
            id: 'd',
            title: 'D'
        }]
    }]
    </script>

    由于没有接触和学习这块内容,然后被难住了。

    一开始想到了暴力法解决这个问题,后来发现如果数据量很大的话,效率是很低的。

    于是就面向百度大学学习了一波。。。。。。。 

    我们啥时候需要修改属性名呢?

    通常后端拿过来的JSON对象数据中,某些属性字段可能不是我们想要的,所以我们需要对这些属性进行处理,方便我们前端的操作。

    目前解决方法有俩

    1. 通过JSON+正则修改对象属性

    JSON.parse(JSON.stringify(list).replace(/title/g, 'name'))

    • 1.JSON.stringify()将json对象转为JSON字符串
    • 2.使用正则的replace(/title/g, 'name'))方法将tilte替换为name
    • 3.JSON.parse()将json字符串转为json对象

    方法1可以链式调用哦,如下:

     let res = JSON.parse(JSON.stringify(list[i]).replace(/title/g, 'name').replace(/id/g, "code"));

    既替换title为name,也替换id为code。

    所以题目通过方法一解决的代码来了~~

      <script>
        // 将数组中所有id变为code,所有title变为name
        const list = [{
          id: 'a',
          title: 'A'
        }, {
          id: 'b',
          title: 'B',
          children: [{
            id: 'c',
            title: 'C'
          }, {
            id: 'd',
            title: 'D'
          }]
        }]
        let result = [];//结果保存
        for (let i = 0; i < list.length; i++) {
          //获取到list的第i个对象,修改后返回一个新对象,不修改原对象
          let res = JSON.parse(JSON.stringify(list[i]).replace(/title/g, 'name').replace(/id/g, "code"));
          //判断是否还有孩子,有就执行下面的操作
          if (list[i].children) {
            let childs = []//存孩子修改后的对象
            //遍历children下对象数组
            for (let j = 0; j < list[i].children.length; j++) {
              //获取到孩子的第j个对象,修改后返回一个新对象,不修改原对象
              let ch = JSON.parse(JSON.stringify(list[i].children[j]).replace(/title/g, 'name').replace(/id/g, "code"));
              childs.push(ch);
            }
            //将孩子修改后的属性赋值给res
            res.children = childs;
          }
          //将res装入result
          result.push(res)
        }
        console.log(result);
      </script>

    输出:

     但是!!!上面的方法会修改键值对的值包含title和id的字符!因此严格上以上方法效率较高却不准确~

     下面来看一下方法2:通过数组方法map()修改属性名。

    通过数组方法map()修改属性名。

    例如:let res = data.map(item=>{return {name:item.title,code:item.id}});

    代码:

    let result2 = [];
        let s = list.map(item => {
          let res = {};
          res.code = item.id;
          res.name = item.title;
          if (item.children) {
            res.children = item.children.map(data => { return { code: data.id, name: data.title } });
          }
          return res;
        })
        console.log(s);

    结果打印

     ok,

    哈哈,太卷了,给自己打打鸡血

    展开全文
  • 二:修改游戏对象的属性,不要在start中直接写修改 首先创建一个私有属性 private GameObject test; 然后在start中给test进行赋值 var test = GameObject.Find(“GameObject(4)”); 在update中进行操作 test.tra

    一:unity获取游戏对象

    1直接获取
    2通过路径获取
    3创建函数体
    4根目录开始获取、先上后先获取
    在这里插入图片描述
    在这里插入图片描述

    1.GameObject.Find只能发现激活的对象
    2.transform.Find可以发现未激活的对象
    在这里插入图片描述

    二:修改游戏对象的属性,不要在start中直接写修改
    首先创建一个私有属性
    private GameObject test;
    然后在start中给test进行赋值
    var test = GameObject.Find(“GameObject(4)”);
    在update中进行操作
    test.transform.gameObject.SetActive(false);
    在这里插入图片描述

    三:1.修改游戏对象名称
    start里面:获取当前绑定的游戏对象名称,并修改游戏对象名称在这里插入图片描述
    2.修改游戏对象当前状态
    在这里插入图片描述
    3修改游戏对象的父对象
    go里面的载体的对象=当前挂载的游戏对象
    1)
    在这里插入图片描述2)
    在这里插入图片描述

    设置当前游戏对象为根节点,即设置当前游戏对象的父对象为空。
    在这里插入图片描述
    4添加新的游戏对象
    在这里插入图片描述
    添加新的游戏对象并附名。
    在这里插入图片描述
    添加新的游戏对象并附名及添加组件
    在这里插入图片描述
    5删除游戏对象或者组件
    在这里插入图片描述

    6修改组件内的名称,首先判断是否存在
    在这里插入图片描述
    7获取当前游戏的对象的子对象
    在这里插入图片描述
    在这里插入图片描述
    获取当前游戏对象的直接子对象,再下面的子对象要用递归或者嵌套循环。

    总结
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 在小程序开发的过程中,我们总会少不了去用setData去拿数据,让数据驱动视图,我们可以把object、array、number、string、都能setData上去,我们也可以在下面操作它们,但是如果我们碰到更换对象中的其中一个属性值...

    在小程序开发的过程中,我们总会少不了去用setData去拿数据,让数据驱动视图,我们可以把object、array、number、string、都能setData上去,我们也可以在下面操作它们,但是如果我们碰到更换对象中的其中一个属性值,应该去怎么办?
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • js修改对象数组的key值

    千次阅读 2022-04-24 11:39:54
    实例:将dataOld这个对象数组的对象中的属性key变成dataNew中的形式; 方法一:使用map循环,在map循环内创建一个新对象,将item要改变的key赋给新创建的对象里面新key值,然后push给一个新创建的数组dataNew即可...
  • js高效修改对象数组里的对象属性名

    万次阅读 热门讨论 2019-01-01 14:16:55
    一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON....
  • 修改对象属性名的两种方法

    千次阅读 2021-09-02 12:45:16
    修改前的数据 let HouChen = [ { name: '羽神', 年龄: 13, sex: '女', userList: [{ id: 1, Z_name: '钢铁侠' }] }, { name: '少主', 年龄: 14, sex: '女', userList: [{ id: 2, Z_name: '蜘蛛侠' }] }, { name:...
  • Java基础系列:反射修改对象属性

    千次阅读 2020-11-26 23:19:03
    利用反射,通过类属性名称修改类属性的值。 2 修改类属性值 2.1 实体类 package com.company.designpattern.reflect; import java.util.Objects; /** * 测试类,用于反射测试 * @author xindaqi * @since ...
  • js 修改对象的键名

    千次阅读 2019-10-15 16:12:57
    情景描述:替换数组对象的键名。 例如: const data = [{名称:'xxx',状态:'未接入'},{名称:'yyy',状态:'已接入'}] 要把名称改为 name ,状态改为 status。 通过 map 实现: const newData = results.map((item)=>...
  • 通过反射修改对象属性

    千次阅读 2020-06-29 11:12:59
    public static void main(String[] args) throws Exception {... * 通过反射调取方法修改参数,应用场景比较多 */ //获取反射对象 Class<?> name = Class.forName(str); //获取实例,因为newInstance方法得到
  • java反射修改对象属性值

    千次阅读 2022-04-20 15:47:41
    java反射修改对象属性值
  • Qt修改类名以及修改项目名的方法-Qt开发

    千次阅读 多人点赞 2019-07-25 20:10:17
    这一篇文章将要介绍的是如何修改一个已经创建好的Qt项目的“项目名称”以及“类名” 一、修改项目名
  • Unity3D 批量修改模型名称

    千次阅读 2022-03-16 10:46:36
    using System.Collections; using System.Collections.Generic; using UnityEngine; public class OneRename : MonoBehaviour { // Start is called before the first frame update void Start() ...
  • 一般修改对象数组的对象属性名,最简便的就是通过遍历对象数组的方法进行修改,但是用这个方法,如果处理的数据量很大,它的执行效率是非常低的。下面介绍一个更高效的方法,即通过正则的方法进行过滤修改。 JSON....
  • File类——JAVA实现批量修改文件名称

    千次阅读 2021-02-27 20:13:18
    最近做了一道题目如下批量修改文件名称假设你某天跟朋友出去玩,使用某数码相机拍摄了一些照片但是当你回来的时候你发现所有的照片都是如下命名的P1020335.JPGP1020336.JPGP1020337.JPGP1020338.JPGP1020339.JPG......
  • vue 修改数组中某个对象的属性

    千次阅读 2021-12-10 09:16:45
    比如要有如下数组 data() { return { certificateData: [ { name: 'xxx', type: '环境证书', imgs:[{url: 'xxxx.png'] }, { name: 'yyy', type: '安全证书', imgs:[{url: 'yyy.png'}] ...修改对象中 i
  • JS遍历对象修改属性名

    千次阅读 2021-01-05 13:57:45
    函数第一个参数是要修改对象,第二个参数传数组 key为要被改的属性名, value为改成的属性名。函数本身是一个深拷贝,通过对其每层中对象的“键”做匹配替换即实现了多层的“键”替换,另外这里如果传空数组此...
  • js修改数组对象的属性名

    千次阅读 2020-11-02 15:54:19
    我是在用mui框架的picker选择器时,`发现添加的数组不显示,仔细看才发现好像数组对象有固定的属性名称value和text,如下所示 picker.setData([{value:'zz',text:'智子'}]); 我从后台拿到的数组是这样的 ...
  • 一、修改坐标轴对象属性、 1、修改坐标轴对象属性、 2、xlim / ylim 函数修改坐标轴属性、 3、修改坐标轴文字大小、 4、修改坐标轴刻度 ( 连续刻度 )、 5、修改坐标轴刻度 ( 指定字符串刻度 )、 二、修改线对象属性...
  • java8 修改List中对象的值

    千次阅读 2021-09-14 13:29:04
    一、创建建新列表,Stream.map 方法 List< Fruit> newList = fruits.stream() ...二、修改list中符合指定查询条件的对象的单个属性值: fruits.stream().filter(o->o.getId().equals(1) .
  • 修改对象属性值 List<LibraryDO> lib = list.stream().map(p -> {p.setId(p.getId() + 1);return p;}).collect(Collectors.toList()) /** * LibraryDO 对象 */ public class LibraryDO implements Serializable { /...
  • 可以先使用查找相似对象功能(注意这里不能使用查找对象功能),然后把选中的所有元素统一修改属性。 为什么不能使用查找? 因为这里的查找是要求完全匹配的。而查找相似对象只需要部分匹配。 原理图中查找元件...
  • js更改对象中属性名的方法

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

    千次阅读 2020-12-30 19:49:06
    更改一个或多个对象名称场景中不同对象名称可以相同,但两个同级节点(具有相同父对象的节点)不能使用相同的名称。注意在节点和属性名称中,除下划线 (_) 和井号 (#) 之外,其他所有标点符号都是非法字符。更改...
  •  Debug.Log(child.name +"子对象Layer更改成功!");  }  }  void Update()  {  if (Input.GetMouseButtonDown(0))  {  //NewLayer必须新建,否则更改失败  ChangeLayer(gameObject.transform, "NewLayer");...
  • Git修改文件名称

    千次阅读 2019-12-13 23:16:31
    如果感觉当前的文件名称不够妥当,可以进行修改,下面对此操作做一下介绍。 一.使用linux命令mv: 和删除文件一样,修改文件名也是一种改变。 关于删除文件可以参阅git删除指定文件一章节。 下面就以修改工作区...
  • 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', ...
  • 一、如何利用反射获取对象 所使用的pojo: public class Person { private String name; private static int age = 58; public Person() { System.out.println("Person的无参构造器"); } public Person...
  • 需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,...因为发现对象名称 ‘dbo.T_DD_OP1200_Final’ 和索引名称 ‘PK_T_DD_OP1200_Final’ 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值...
  • Intellij idea java修改xxx项目名称

    万次阅读 2018-02-24 14:40:23
    利用Intellij idea,在学习java面向对象程序设计时,要创建项目,对于初学者,...下面介绍在Intellij idea中修改项目名称的步骤:1、点开.idea文件夹,找到 modules.xml,双击打开。2、对应的.iml文件修改名字:将H...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 957,183
精华内容 382,873
关键字:

修改对象名称