У меня есть массив
[
{
"name":"BMW",
"price":"55 000",
"color":"red",
},
{
"name":"MERSEDEC",
"price":"63 000",
"color":"blue",
}
];
Нужно написать функцию которая будет на входе принимать массив и на выходе будет вместо name будет вылетать class
"class":"MERSEDEC",
"price":"63 000",
"color":"blue",
Какой метод использовать?
Если почему-либо требуется оставить исходный массив в первозданном виде:
let data = [{
"name": "BMW",
"price": "55 000",
"color": "red",
},
{
"name": "MERSEDEC",
"price": "63 000",
"color": "blue",
}
];
function transform(arr) {
return arr.map(item => {
let newItem = Object.assign({}, item);
newItem.class = item.name;
delete newItem.name;
return newItem;
})
}
console.log(transform(data));
var data = [{
"name": "BMW",
"price": "55 000",
"color": "red",
},
{
"name": "MERSEDEC",
"price": "63 000",
"color": "blue",
}
];
function nameToClass(arr) {
arr.forEach(i => {
i.class = i.name;
delete i.name;
});
return arr;
}
console.log(nameToClass(data));
Как сделать так что бы class был первым, а не в конце?
var data = [{
"name": "BMW",
"price": "55 000",
"color": "red",
},
{
"name": "MERSEDEC",
"price": "63 000",
"color": "blue",
}
];
function nameToClass(arr) {
var str = JSON.stringify(arr);
str = str.replace(/name/g, "class");
arr.splice(0, arr.length, ...JSON.parse(str));
return arr;
}
console.log(nameToClass(data));
Если нужно заменить name
на class
, то можно просто сделать всё в цикле:
var items; // Ваш массив с данными.
var i;
for(i = 0; i < items.length; i++){
items[i].class = items[i].name;
delete items[i].name;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно составить регулярное выражение что бы оно находило в тексте дату в разных форматах, при том записывая в совпадения только число...