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

JS脚本中修改rawdata的JSON元素:批量更新features后半段year属性

修改JSON数组后半部分元素的year属性值

没问题,这需求很清晰,咱们直接上解决方案。核心就是先确定数组的“后半部分”起始位置,然后遍历修改对应元素的year属性就行。

步骤说明:

  • 首先计算features数组的中间索引,用Math.floor(rawdata.features.length / 2)来确定后半部分的起始位置(如果数组长度是奇数,中间元素会被归到前半部分,这是常规的“后半部分”定义)。
  • 遍历后半部分的每个元素,修改其attributes.year的值。如果需要确保只修改原本是1718的字段,可以加个判断条件,避免误改其他值。

完整代码示例:

// 假设你的rawdata已经是解析完成的JavaScript对象
const rawdata = {
  features: [
    { attributes: { OBJECTID: 464477, uniqueid: 14494171801, property_no: 14494, year: 1718, path: "Business||CBD Works" } },
    { attributes: { OBJECTID: 464478, uniqueid: 14494171802, property_no: 14494, year: 1718, path: "Roads & Bins||Roading" } },
    // 更多元素...
  ]
};

// 计算后半部分的起始索引
const midIndex = Math.floor(rawdata.features.length / 2);

// 遍历并修改后半部分元素的year属性
rawdata.features.slice(midIndex).forEach(feature => {
  // 可选:只修改原本year为1718的元素,按需移除
  if (feature.attributes.year === 1718) {
    feature.attributes.year = 1819;
  }
});

// 如果需要将修改后的对象转回JSON字符串,可以用:
// const updatedRawdataStr = JSON.stringify(rawdata);

补充说明:

  • 如果你的rawdata还是JSON字符串格式,需要先通过JSON.parse(rawdataStr)解析成JS对象再操作。
  • slice(midIndex)会返回原数组从midIndex到末尾的新数组,但因为数组元素是引用类型,修改新数组里的元素会同步修改原数组的元素,所以不用怕丢失修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:31:54