You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除对象属性名中的_demo?现有JS代码无效求解决方案

解决对象列表属性名移除“_demo”的问题

你的原代码没生效,核心问题有两个:

  1. da.replace('_demo','')只返回了修改后的字符串,但没把这个新字符串用起来——da是属性名的副本,replace也不会修改原字符串
  2. 没有对原对象做实际修改:既没删除旧属性,也没添加修改后的新属性

给你两种可行的解决方式:

方式一:直接修改原对象列表

datalist.forEach((data) => {
  // 先把所有属性名存成数组,避免遍历原对象时属性变化影响循环
  const keys = Object.keys(data);
  keys.forEach(key => {
    if (key.includes('_demo')) {
      const newKey = key.replace('_demo', '');
      // 把旧属性的值转移到新属性
      data[newKey] = data[key];
      // 删除原来的旧属性
      delete data[key];
    }
  });
});

方式二:生成新的对象列表(不修改原数据)

如果不想改动原数组里的对象,可以用map生成新列表:

const newDatalist = datalist.map(data => {
  const newObj = {};
  Object.keys(data).forEach(key => {
    // 直接替换属性名里的_demo,不管有没有都处理
    const newKey = key.replace('_demo', '');
    newObj[newKey] = data[key];
  });
  return newObj;
});

内容的提问来源于stack exchange,提问作者John N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:36:08