js怎么取一个数组中的奇数位元素或者偶数位元素

JavaScript013

js怎么取一个数组中的奇数位元素或者偶数位元素,第1张

js中有一个函数filter(),可以用来过滤数组中的特定元素;

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

语法 : filter((item, index, arr) =>{ ... })

filter中一共可已设置三个入参:其中item( 必填 )--代表数组中的每个元素,filter会对每个元素进行遍历;

index( 先填 )--每个元素的index;arr( 选填 )--指定要遍历的数组。

要筛选数组中的奇数位元素或者偶数位元素就可以用filte()方法。

例子:

<!DOCTYPE html>

<html lang="en">

<head>

<title>奇偶数</title>

</head>

<body>

<input type=text>

<input type=button value="判断" onclick="chk(value)">

<p id="demo"></p>

<script>

function chk(num) {

var inputs = document.getElementsByTagName('input')[0]

var value = inputs.value

num = value

console.log(num)

alert((num % 2 == 0) ? "偶数" : "奇数") //判断是否能整除2

}

</script>

</body>

</html>

我写了一个便于理解的算法,只要进行一次循环,不用排序。请参考:

var arr = [1,3,5,7,9,2,4,6,8,10]  //定义一个数组

alert(func(arr))  //调用函数

function func(arr){

  var odd = null,  //odd是存放最大奇数的变量

      even = null  //even是存放最小偶数的变量

  //下面对数组元素进行循环判断

  for(var n = 0 n < arr.length n++){

    //如果元素模2为0,则是偶数

    if(arr[n] % 2 == 0){

      //如果odd变量是null,或者当前元素大于odd

      //则给odd变量值替换为当前元素

      if(odd == null || arr[n] > odd){

        odd = arr[n]

      }

    }

    //同理,

    //如果元素模2不为0,则是奇数

    if(arr[n] % 2 != 0){

      //如果even变量是null,或者当前元素小于even

      //则给even变量值替换为当前元素

      if(even == null || arr[n] < even){

        even = arr[n]

      }

    }

  }

  //最后返回结果

  if(odd != null && even != null){

    return odd + even

  }else{

    return null

  }

}