js数组对象中,如果相邻两项相等,记住下标
时间: 2024-03-27 18:40:20 浏览: 57
可以使用一个变量记录上一个元素的值和下标,每遍历到一个新元素,就和上一个元素进行比较,如果相等,就记住下标。具体实现可以参考以下代码:
```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` 记录到结果数组中。最后输出结果数组即可。
相关问题
js如何让数组中的相邻两个对象上移下移
在 JavaScript 中,可以使用数组的 `splice()` 方法来实现数组中相邻对象的上移和下移。下面是示例代码:
上移相邻两个对象:
```javascript
function moveUp(arr, index) {
if (index > 0 && index < arr.length) { // 确保对象在数组范围内
const temp = arr[index - 1];
arr[index - 1] = arr[index];
arr[index] = temp;
}
}
const myArray = [1, 2, 3, 4, 5];
const targetIndex = 2; // 对象所在的索引
moveUp(myArray, targetIndex);
console.log(myArray); // 输出:[1, 2, 4, 3, 5]
```
下移相邻两个对象:
```javascript
function moveDown(arr, index) {
if (index >= 0 && index < arr.length - 1) { // 确保对象在数组范围内
const temp = arr[index + 1];
arr[index + 1] = arr[index];
arr[index] = temp;
}
}
const myArray = [1, 2, 3, 4, 5];
const targetIndex = 2; // 对象所在的索引
moveDown(myArray, targetIndex);
console.log(myArray); // 输出:[1, 2, 4, 3, 5]
```
以上代码示例中,`moveUp()` 函数将给定索引的对象和其前一个对象进行交换,实现了上移操作。`moveDown()` 函数将给定索引的对象和其后一个对象进行交换,实现了下移操作。
数组中相邻两个下标的元素相除,怎么表示
在C语言中,如果你想要表示数组中相邻两个下标元素的商,你可以使用循环结构遍历数组,同时处理当前元素与其前一个元素之间的除法。下面是一个基本示例,假设有一个名为`array`的一维整型数组:
```c
#include <stdio.h>
int main() {
int array[] = {5, 10, 15, 20, 25}; // 示例数组
int length = sizeof(array) / sizeof(array[0]);
// 遍历数组,除了第一个元素(因为它没有前一个元素),其余每个元素都除以前一个元素
for (int i = 1; i < length; i++) {
double division_result = (double) array[i] / array[i - 1]; // 将整数转换为双精度浮点数进行除法,避免整数溢出
printf("数组第%d和第%d项之比为: %f\n", i, i - 1, division_result);
}
return 0;
}
```
这段代码会打印数组中相邻元素的比值,例如第一对是5/10,第二对是10/15等。
阅读全文