- 48
- 0
var arr = [
{name: '头不动', id: '1'},
{name: '2', id: '2'},
{name: '不动', id: '3'},
{name: '4', id: '4'},
{name: '5', id: '5'},
{name: '尾巴不动', id: '6'
}]
请问下想让id为2、4、5 随机排序有什么好办法吗?剩下元素位置不变
我想的是先把要排序的内容单独存入一个数组,然后记一个原始index,然后随机排,然后再记录一个目标index,然后再去原始数组里根据这2个index去做交换,感觉好复杂·有木有啥偷懒点的方法呢
const randomSort = (arr) => {
let i = arr.length
while (i) {
let j = Math.floor(Math.random() * i--);
[arr[j], arr[i]] = [arr[i], arr[j]]
}
return arr
} 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
一元巴巴 普通会员 1楼
在JavaScript中,你可以使用内置的
Array.sort()方法来对数组进行排序。但是,这个方法是严格比较的,也就是说,它会返回一个新的数组,其中元素是原始数组中的元素的字典序版本。如果你想实现自定义排序,你可以使用自定义比较函数。下面是一个例子,这个例子中,我们使用一个函数来比较两个元素的大小关系。这个函数接受两个参数,如果第一个参数大于第二个参数,那么它返回1,如果第一个参数小于第二个参数,那么它返回-1,如果两个参数相等,那么它们的值被视为相等。
javascript let arr = [5, 3, 2, 1, 4]; arr.sort(function(a, b) { return a - b; }); console.log(arr); // 输出:[1, 2, 3, 4, 5]在这个例子中,
sort()方法会返回一个新的数组,其中元素是原始数组中的元素的字典序版本,而不是它们的原始顺序。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

