js 判断数组末尾N个数值是否连续变大
时间: 2023-11-30 22:02:36 浏览: 27
可以通过遍历数组,比较末尾N个元素的值与它们的前一个元素的值是否连续变大来判断。具体实现可以参考下面的代码:
```javascript
function isLastNIncreasing(arr, n) {
if (arr.length < n) return false; // 数组长度小于N,直接返回false
for (let i = arr.length - 1; i > arr.length - n; i--) {
if (arr[i] <= arr[i - 1]) return false; // 有一个元素不符合条件,返回false
}
return true; // 所有元素都符合条件,返回true
}
// 示例
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(isLastNIncreasing(arr, 3)); // true,最后三个数值连续变大
console.log(isLastNIncreasing(arr, 5)); // false,最后五个数值不连续变大
```
需要注意的是,如果数组长度小于N,直接返回false。另外,这个函数只能判断末尾N个数值是否连续变大,如果要判断整个数组是否连续变大,需要进行相应的改动。
相关问题
js 判断数组末尾N个数值是否连续变小
类似于判断数组末尾N个数值是否连续变大,我们可以遍历数组,比较末尾N个元素的值与它们的前一个元素的值是否连续变小来判断。具体实现可以参考下面的代码:
```javascript
function isLastNDecreasing(arr, n) {
if (arr.length < n) return false; // 数组长度小于N,直接返回false
for (let i = arr.length - 1; i > arr.length - n; i--) {
if (arr[i] >= arr[i - 1]) return false; // 有一个元素不符合条件,返回false
}
return true; // 所有元素都符合条件,返回true
}
// 示例
const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
console.log(isLastNDecreasing(arr, 3)); // true,最后三个数值连续变小
console.log(isLastNDecreasing(arr, 5)); // false,最后五个数值不连续变小
```
同样需要注意的是,如果数组长度小于N,直接返回false。这个函数只能判断末尾N个数值是否连续变小,如果要判断整个数组是否连续变小,需要进行相应的改动。
使用js2.定义两个数组arr1,arr2,向数组中添加数值,arr1长度为5,arr2长度为8,将arr1与arr2对应位置元素较大的取出,组成arr3数组,并将arr3多余的3个元素拼接到arr3的末尾。
好的,我可以回答这个问题。可以使用以下代码实现:
```javascript
var arr1 = [1, 3, 5, 7, 9];
var arr2 = [2, 4, 6, 8, 10, 12, 14, 16];
var arr3 = [];
for (var i = ; i < arr1.length && i < arr2.length; i++) {
arr3.push(Math.max(arr1[i], arr2[i]));
}
arr3 = arr3.concat(arr1.slice(i), arr2.slice(i)).slice(, 8);
console.log(arr3); // [2, 4, 6, 8, 10, 14, 16, 9]
```
这段代码首先定义了两个数组`arr1`和`arr2`,并向它们中添加了一些数值。然后,我们定义了一个空数组`arr3`,用于存储对应位置元素较大的值。
接下来,我们使用一个`for`循环遍历`arr1`和`arr2`,并使用`Math.max()`函数获取对应位置元素的较大值,将其添加到`arr3`中。
最后,我们使用`concat()`函数将`arr1`和`arr2`中剩余的元素拼接到`arr3`的末尾,并使用`slice()`函数截取前8个元素,以满足`arr3`的长度要求。
最终,我们将`arr3`打印到控制台中,输出结果为`[2, 4, 6, 8, 10, 14, 16, 9]`。