【发布时间】:2021-11-20 04:01:51
【问题描述】:
我有这个数组[-1, 8, -1, 6, -1, 4, -1, 2, 0, -1]
我想使用循环重新排列,元素将放置在其索引中
例如,元素 8 将放在第 8 个索引中,元素 0 将放在第 0 个索引中
输出[0,-1,2,-1,4,-1,6,-1,8,-1];
这是我的代码
let arr = [-1, 8, -1, 6, -1, 4, -1, 2, 0, -1];
for (let i = 0; i < arr.length; i++) {
const elem = arr[i];
// console.log('---',elem)
if (i !== arr[i]) {
if (arr[i] !== -1) {
const valInd = arr[arr[i]];
arr[arr[i]] = elem;
arr[i] = valInd
}
}
};
console.log(arr);
请帮助我了解我在哪里失踪
【问题讨论】:
-
你应该显示更多的重新排列条件的细节
-
-1固定了吗??? -
如果您交换两个数字,只能保证其中 一个 在正确的位置。例如,
[2, -1, 1]- 交换2和1意味着2在其索引处,但1现在不在位置,它也需要交换,但在此之前循环继续到下一个索引。
标签: javascript sorting