替换数组中的对象而不将数组转换为字符串 javascript 应用程序脚本

replace an object in an array without convert array to string javascript app script

我正在使用应用程序脚本从 API 获取信息并将其用作 JSON。

var data = UrlFetchApp.fetch(***);
var obj = JSON.parse(data); // To JSON
Logger.log(typeof(obj)); // return type as object

return 数组示例 JSON:

var dataJson = [{age=20, gender=female, country=usa, name=sali, type=female},{age=25, gender=male, country=usa, name=john, type=female},{age=19, gender=female, country=usa, name=anita, type=female},{age=22, gender=male, country=usa, name=fredo, type=female}]

如果性别 = 女性,我想将国家/地区更改为英国。 如果 gender = male 将国家/地区更改为加拿大。

我希望在更新数组后保持类型为对象而不是字符串。

结果为:

[{age=20, gender=female, country=uk, name=sali, type=female},{age=25, gender=male, country=canada, name=john, type=female},{age=19, gender=female, country=uk, name=anita, type=female},{age=22, gender=male, country=canada, name=fredo, type=female}]

注意:not fixed中的数据是动态变化的。

你可以简单地映射它

var dataJson = [{age:20, gender:'female', country:'usa', name:'sali', type:'female'},{age:25, gender:'male', country:'usa', name:'john', type:'male'}]


const result = dataJson.map(({gender, ...rest}) => {
const isFemale = gender === 'female'
 return {
   ...rest,
   gender: isFemale? 'woman': 'man',
   country: isFemale ?'uk': 'canada'
 }
})

console.log(result)

您只是在寻找:

dataJson = dataJson.map(elem => {
    if(elem.gender === 'female'){
        elem.country = 'uk'
    }
    if(elem.gender === 'male'){
        elem.country = 'canada'
    }
    return elem
})