gpt4 book ai didi

javascript - 改变数组元素的位置

转载 作者:行者123 更新时间:2023-11-30 09:10:54 26 4
gpt4 key购买 nike

let cards = [
{ name: 'a', value: '234'},
{ name: 'b', value: '876' },
{ name: 'c', value: '765'},
{ name: 'd', value: '980' }
];
let defaultCard = 'c';

我想让 defaultCard 成为 cards 数组中的第一张卡片。在这种情况下,结果将是

cards = [
{ name: 'c', value: '765'},
{ name: 'a', value: '234'},
{ name: 'b', value: '876' },
{ name: 'd', value: '980' }
]

什么是最好的方法。

我所做的是获取默认卡的索引并与 0 索引交换。

function getIndex(arr, defaultCard) {
return arr.findIndex((item) => item.name === defaultCard);
}
function getSortedCard(arr) {
let index = getIndex(arr, defaultCard);
if (index < 1) return arr;
let temp = arr[index];
arr[index] = arr[0];
arr[0] = temp;
return arr;
}

const newArr = getSortedCard(cards);
console.log(newArr);

最佳答案

这是一种通过解构和 Array.filter 方法来实现的方法。

let cards = [
{ name: 'a', value: '234'},
{ name: 'b', value: '876' },
{ name: 'c', value: '765'},
{ name: 'd', value: '980' }
];
let defaultCard = 'c';

cards = [cards.find(item => item.name === defaultCard), ...cards.filter(item => item.name !== defaultCard)];

console.log(cards);

关于javascript - 改变数组元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59129206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com