javascript - 用位置替换数组中的对象
问题描述
该函数将一个对象添加到数组中,并使其在列表中排在第二位。但在这种情况下,我紧紧抓住对象,我知道他创建后的编号是多少(5)。如何使它始终被添加到第二个?
const arr = [{
"name": "BMW",
"price": "55 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mercedes-benz",
"price": "63 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mitsubishi",
"price": "93 000",
"constructor": "Bar John",
"door": "3",
"country": "Japan",
},
{
"name": "TOYOTA",
"price": "48 000",
"max_people": "7",
"country": "Japan",
"certificate": "yes"
},
{
"name": "Volkswagen",
"price": "36 000",
"constructor": "Pier Sun",
"country": "Germany",
"certificate": "no"
},
];
function pushArr(arr, item) {
arr.push(item);
arr[5] = [arr[1], arr[1] = arr[5]][0];
}
let newArr = pushArr(arr, {
"name": "Audi",
"price": "89 000",
"constructor": "Adolf Trump",
"country": "Germany",
"certificate": "yes"
});
console.log(arr);
解决方案
const arr = [{
"name": "BMW",
"price": "55 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mercedes-benz",
"price": "63 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mitsubishi",
"price": "93 000",
"constructor": "Bar John",
"door": "3",
"country": "Japan",
},
{
"name": "TOYOTA",
"price": "48 000",
"max_people": "7",
"country": "Japan",
"certificate": "yes"
},
{
"name": "Volkswagen",
"price": "36 000",
"constructor": "Pier Sun",
"country": "Germany",
"certificate": "no"
},
];
function pushArr(arr, item) {
let n = arr.length;
arr.push(item);
arr[n] = [arr[1], arr[1] = arr[n]][0];
}
let newArr = pushArr(arr, {
"name": "Audi",
"price": "89 000",
"constructor": "Adolf Trump",
"country": "Germany",
"certificate": "yes"
});
let newArr2 = pushArr(arr, {
"name": "Audi2",
"price": "100 000",
"constructor": "Adolf Trump",
"country": "Germany",
"certificate": "yes"
});
console.log(arr);