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
相关产品推荐
相关产品推荐

