js实现数组相邻两项换位置
时间: 2024-01-21 15:02:24 浏览: 29
可以使用以下代码实现:
```javascript
function swapAdjacentItems(arr) {
for (let i = 0; i < arr.length - 1; i += 2) {
const temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
return arr;
}
const arr = [1, 2, 3, 4, 5, 6];
console.log(swapAdjacentItems(arr)); // [2, 1, 4, 3, 6, 5]
```
上述代码中,我们通过循环遍历数组,每次交换相邻两项的位置。需要注意的是,循环次数应该是数组长度减一,因为每次交换都会影响两个元素的位置。
相关问题
js数组对象中,如果相邻两项相等,记住下标
可以使用一个变量记录上一个元素的值和下标,每遍历到一个新元素,就和上一个元素进行比较,如果相等,就记住下标。具体实现可以参考以下代码:
```javascript
let arr = [1, 2, 2, 3, 4, 4, 4, 5];
let prev = { value: null, index: null };
let result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === prev.value) {
result.push(prev.index, i);
}
prev = { value: arr[i], index: i };
}
console.log(result); // [2, 3, 5, 6]
```
这里使用了一个 `prev` 对象来记录上一个元素的值和下标,初始值设为 `{ value: null, index: null }`。在遍历数组时,每次都将当前元素和 `prev.value` 进行比较,如果相等,就将 `prev.index` 和当前下标 `i` 记录到结果数组中。最后输出结果数组即可。
Javascript 冒泡排序
Javascript 冒泡排序是一种简单的排序算法,通过多次遍历数组并交换相邻的项来将数组排序。
这是一个简单的冒泡排序算法的实现:
```
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换两个项
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
```
冒泡排序的时间复杂度为 O(n^2),不适用于大型数据集。