关于#javascript#的问题:js 对象中的属性名是中文的时候怎么提取出来成为属性值,将第一个图的数据格式

js 对象中的属性名是中文的时候怎么提取出来成为属性值,如图所示,将第一个图的数据格式,变成第二图中的

img

img

const arr = [{火车: 0}];
const newArr = arr.map(item => ({ name: Object.keys(item)[0], value: item[Object.keys(item)[0]] }));
console.log(newArr);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/770862
  • 你也可以参考下这篇文章:如何使用JavaScript将对象转换为字符串?
  • 除此之外, 这篇博客: JS深浅拷贝中的 1.1 javascript 的的数据类型和它们在程序中存储的位置 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    javascript 有两种数据类型

    1. 基本数据类型:它是简单的数据段,包含新增的一共7种 String、Number、Boolean、Null、Undefined、Symbol BigInt
    2. 引用类型: 对象,数组,函数 ,日期对象,正则对象
  • 您还可以看一下 侯红彪老师的JavaScript 基础到进阶案例课程中的 字符串对象创建方式 和 属性小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以通过以下步骤来实现该问题:

    1. 创建一个空对象,作为存储中文属性值的目标对象。
    let target = {};
    
    1. 循环遍历中文属性名的对象,使用for...in语句遍历对象的属性名,然后使用object.hasOwnProperty()方法判断对象属性名是否为中文,如果是中文,则提取属性值,并将属性名作为属性值存储到目标对象中。
    for(let prop in obj){
      if(obj.hasOwnProperty(prop)){
        if(/[\u4e00-\u9fa5]/.test(prop)){
          target[prop] = obj[prop];
        }
      }
    }
    
    1. 返回目标对象。
    return target;
    

    完整代码如下:

    function extractChineseProperties(obj){
      let target = {};
      for(let prop in obj){
        if(obj.hasOwnProperty(prop)){
          if(/[\u4e00-\u9fa5]/.test(prop)){
            target[prop] = obj[prop];
          }
        }
      }
      return target;
    }
    

    输入一个类似于第一张图片的对象,调用该函数后返回一个类似于第二张图片的目标对象。例如:

    let obj = {
      '名称': '小明',
      '年龄': 20,
      '性别': '男'
    };
    
    let extractedObj = extractChineseProperties(obj);
    
    console.log(extractedObj);
    // 输出:{ '名称': '小明', '性别': '男' }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^