情况是这样的:我需要能够对任何一维数组重新排序,以便新数组以中心数字(如果对象计数为奇数)或中心 2 数字(如果对象计数为偶数)开始并迭代低,然后高直到原始数组中的所有数字都被计算在内。
示例 1 - 奇数个对象:原始数组:[1,2,3,5,8,13,20] 新数组:[5,3,8,2,13,1,20]
示例 2 - 偶数个对象:原始数组:[1,2,3,4] 新数组:[2,3,1,4]
我已经用 for 循环尝试过这个并且可以让它假设地工作,但是我无法将 for 循环用作 Vue.js 中的计算属性。
这是我的尝试,但没有用:
gameInfo: {
cards: [1, 2, 3, 6, 8, 13, 21, 40, 1000],
}
reorderOddCards() {
ATTEMPT 1
const cardCount = this.gameInfo.cards.length;
const middleNumber = (cardCount / 2).toFixed(0);
const newCardOrder = this.gameInfo.cards.map(addToArray);
function addToArray(value, index) {
if (index < middleNumber) {
const newIndex = (((middleNumber - index) * 2) - 1);
newCardOrder.splice(newIndex, 1, value);
} else if (index === middleNumber) {
newCardOrder.splice(index, 1, value);
} else {
const newIndex = ((middleNumber - index) * 2);
newCardOrder.splice(newIndex, 1, value);
}
}
return newCardOrder;
},
这是一个带有 .sort 函数的看似更好的方法,但我似乎也无法让它工作。
宝慕林4294392
相关分类