记录一段js:判断数组元素连续或者不连续

如果我们拿到一个数组的解构是这样的:
[‘2’,‘3’,‘5.5’,‘6’,‘7’,‘8’,‘12’,‘12.1’,‘13’,‘16’,‘17’]
我们需要把它变成这样:
2-3,5.5,6-8,12,12.1,13,16-17

思路:
1,先将数组连续的数字push进一个新的数组
2,再通过 map 遍历这个数组

function sort(arr) {
    var result = [];
    arr.forEach(function (v, i) {
        var temp = result[result.length - 1];
        if (!i) {
            result.push([v]);
        } else if (v % 1 === 0 && v - temp[temp.length - 1] == 1) {
            temp.push(v);
        } else {
            result.push([v]);
        }
    });
    console.log(result);
    return result.map(function (v) {
        if (v.length == 1) {
            return v;
        } else {
            return v[0] + '-' + v[v.length - 1];
        }
    }).join(",");
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码判断数组元素是否相等: ```javascript function isArrayEqual(arr) { for(var i = 1; i < arr.length; i++) { if(arr[i] !== arr[0]) { return false; } } return true; } ``` 使用示例: ```javascript var arr1 = [1, 1, 1, 1]; var arr2 = [1, 2, 1, 1]; console.log(isArrayEqual(arr1)); // 输出 true console.log(isArrayEqual(arr2)); // 输出 false ``` ### 回答2: 在 JavaScript 中,有几种方法可以判断数组元素是否相等。 方法1:使用循环 可以使用一个循环来遍历数组元素,然后将每个元素与给定的值进行比较。如果有任何一个元素与给定的值相等,则可以判断数组中存在相等的元素。 示例代码: ```javascript function isEqual(arr, value) { for (var i = 0; i < arr.length; i++) { if (arr[i] === value) { return true; } } return false; } var arr = [1, 2, 3, 4, 5]; console.log(isEqual(arr, 3)); // 输出:true console.log(isEqual(arr, 6)); // 输出:false ``` 方法2:使用 includes() 方法 ES7 中的 includes() 方法可以用于判断数组是否包含某个元素。如果数组中存在与给定的值相等的元素,则返回 true;否则返回 false。 示例代码: ```javascript var arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // 输出:true console.log(arr.includes(6)); // 输出:false ``` 方法3:使用 indexOf() 方法 indexOf() 方法可以用于判断数组中是否包含某个元素。如果数组中存在与给定的值相等的元素,则返回相等元素的索引值(大于等于 0);否则返回 -1。 示例代码: ```javascript var arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3) !== -1); // 输出:true console.log(arr.indexOf(6) !== -1); // 输出:false ``` 以上是几种判断数组元素是否相等的方法,你可以根据具体的情况选择适合的方法来使用。 ### 回答3: 在JavaScript中,判断数组元素是否相等有多种方法。 一种方法是使用for循环遍历数组,并通过比较元素的值来判断它们是否相等。例如: ```js function isArrayElementsEqual(arr) { for (let i = 1; i < arr.length; i++) { if (arr[i] !== arr[0]) { return false; } } return true; } const arr1 = [1, 1, 1, 1]; console.log(isArrayElementsEqual(arr1)); // true const arr2 = [1, 2, 3, 4]; console.log(isArrayElementsEqual(arr2)); // false ``` 另一种方法是使用数组的`every()`方法和比较函数来判断所有元素是否相等。例如: ```js function isArrayElementsEqual(arr) { return arr.every((element, index, array) => element === array[0]); } const arr1 = [1, 1, 1, 1]; console.log(isArrayElementsEqual(arr1)); // true const arr2 = [1, 2, 3, 4]; console.log(isArrayElementsEqual(arr2)); // false ``` 以上两种方法都可以用来判断数组元素是否相等,选择哪种方法取决于个人的偏好和代码的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值