Javascript更新对象属性值

Javascript update Object attribute value

我正在尝试更新对象属性:

   data : [
     {"id":1,"rp":"2426","cr":"11-11"},
     {"id":1,"rp":"1119","cr":"19-21"},
     {"id":1,"rp":"3453","cr":"23-81"}
    ]

新对象将更新如下。

NewData: [
 {"id":1,"rp":"2426","cr":"11/11"},
 {"id":1,"rp":"1119","cr":"19/21"},
 {"id":1,"rp":"3453","cr":"23/81"}
]

我希望为所有值更新对象 cr 属性,例如使用 javascript.replace() 方法,我会做 replace("-","/")。

您可以迭代并映射数组。

var data = [{ id: 1, rp: "2426", cr: "11-11" }, { id: 1, rp: "1119", cr: "19-21" }, { id: 1, rp: "3453", cr: "23-81" }],
    newArray = data.map(o => Object.assign({}, o, { cr: o.cr.replace("-","/") }));

console.log(newArray);
.as-console-wrapper { max-height: 100% !important; top: 0; }

这只是Array#mapString#replace的简单用法:

ES2018

const data = [{"id":1,"rp":"2426","cr":"11-11"},{"id":1,"rp":"1119","cr":"19-21"},{"id":1,"rp":"3453","cr":"23-81"}]

const r = data.map(({ cr, ...rest }) => ({ cr: cr.replace('-', '/'), ...rest }));

console.log(r);

您可以使用 map 方法创建新数组并使用 replace 更新 cr 属性.

var data = [{"id":1,"rp":"2426","cr":"11-11"},{"id":1,"rp":"1119","cr":"19-21"},{"id":1,"rp":"3453","cr":"23-81"}]
var update = data.map(({cr, ...rest}) => ({...rest, cr: cr.replace("-","/")}))
console.log(update)

试试这个:

const data = [
  {"id":1,"rp":"2426","cr":"11-11"},
  {"id":1,"rp":"1119","cr":"19-21"},
  {"id":1,"rp":"3453","cr":"23-81"}
];

const newData = data.map(item => ({...item, cr: item.cr.replace(/-/g, '/')}));

console.log(newData);

如果您需要它在 IE11 中工作:

const data = [
  {"id":1,"rp":"2426","cr":"11-11"},
  {"id":1,"rp":"1119","cr":"19-21"},
  {"id":1,"rp":"3453","cr":"23-81"}
];

const newData = data.map(
  function(item) {
    return {
      id: item.id,
      rp: item.rp,
      cr: item.cr.replace(/-/g, '/')
    }
  }
);

console.log(newData);

你可以试试这个

let data = [
     {"id":1,"rp":"2426","cr":"11-11"},
     {"id":1,"rp":"1119","cr":"19-21"},
     {"id":1,"rp":"3453","cr":"23-81"}
    ];
    
    
let newData = data.map(e=>{
  e.cr = e.cr.replace(/-/, '/')
  return e
})

console.log(newData)

下面试试

data.forEach(function(object){
    object["cr"] = object["cr"].replace("-","/");
});

const data = [{"id":1,"rp":"2426","cr":"11-11"},{"id":1,"rp":"1119","cr":"19-21"},{"id":1,"rp":"3453","cr":"23-81"}]

const r = JSON.parse(JSON.stringify(data).replace(/-/g,'/'))
console.log(r);