Javascript 如何编写一个返回大于某个数字的数组元素的函数

Javascript 如何编写一个返回大于某个数字的数组元素的函数

给定一个数组 arr 和一个数字 n ,编写一个函数,返回数组中大于n的元素组成的数组。

示例:

Input:   arr = [65, 16, 0, 6, 64, 1, 68]
         n = 16
Output:  [65, 64, 68]

Input:   arr = [6, 46, 54, 6, 56, 54, 65, 4, 65]
         n = 50
Output: [54, 56, 54, 65, 65]

为了实现这一点,我们有以下方法:

方法1:使用Array.filter()

在这种方法中,我们使用 Array.filter 方法。在每次迭代中,我们检查值是否大于num。

示例:

<script> 
let returnLarger = (arr, num) => arr.filter(n => n > num); 
  
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16)) 
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50)) 
</script> 

输出:

[65, 64, 68]
[54, 56, 54, 65, 65]

方法2:使用Array.reduce()

在这个方法中,我们使用数组的reduce方法。使用一个空数组来初始化累加器,并在每次迭代中检查当前值是否大于 num 如果是,则将当前值与累加器连接起来并返回,否则将累加器原样返回。

示例:

<script> 
// Creating a function that return an array  
// whose items are less than num 
let returnLarger = (arr, num) => { 
  return arr.reduce((acc, curr)=>{   
    if(curr > num){ 
      return acc.concat(curr)  // Concatenate the acc with arr 
    }else{ 
      return acc 
    } 
  }, [])   // Initialize the accumulator with an empty array 
} 
  
  
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16)) 
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50)) 
</script>

输出:

[65, 64, 68]
[54, 56, 54, 65, 65]

方法3:使用Array.map方法

在这种方法中,我们使用map方法迭代数组,并在每次迭代时检查当前值是否大于 num ?如果为真,则将该值原样返回。如果为假,则将该项替换为空字符串(或任何falsy值)。然后使用filter方法删除falsy值。

<script> 
// Creating a function that return an array  
// whose items are less than num 
let returnLarger = (arr, num) => { 
  return arr.map(v => v > num ? v : "").filter(Boolean) 
} 
  
  
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16)) 
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50)) 
</script>

输出:

[65, 64, 68]
[54, 56, 54, 65, 65]

方法4:使用for循环

在这种方法中,我们创建一个空数组,使用for循环迭代给定的数组,并在每次迭代时检查当前值是否大于num。如果为真,则将该值推入新创建的数组中。

<script> 
// Creating a function that return an array  
// whose items are less than num 
  
let returnLarger = (arr, num) => { 
  let newArr = [] 
     
  for(let i = 0; i < arr.length; i++){ 
    if(arr[i] > num){ 
      newArr.push(arr[i]) 
    } 
  } 
    
  return newArr 
} 
  
  
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16)) 
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50)) 
</script> 

输出:

[65, 64, 68]
[54, 56, 54, 65, 65]

方法5:使用forEach循环

在这种方法中,我们创建一个空数组并使用forEach循环迭代给定的数组,每次迭代时,我们使用与运算符对表达式进行操作,其中第一个操作符检查当前值是否大于num,如果返回false,则不执行新操作,如果返回true,则将元素推送到数组中。

<script> 
// Creating a function that return an array 
// whose items are less than num 
  
let returnLarger = (arr, num) => { 
let newArr = [] 
      
arr.forEach( ele => (ele > num) && newArr.push(ele)) 
  
return newArr 
} 
  
  
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16)) 
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50)) 
  
</script>

输出:

[ 65, 64, 68 ]
[ 54, 56, 54, 65, 65 ]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程