JS中数组几道练习题

1、将数组[2,4,6,8,10]的内容反过来存放,输出[10,8,6,4,2]

function getChange(arr) {
      return arr.reverse(arr)
    }
    let newArr = getChange([2,4,6,8,10])
    console.log(newArr)

2、数组筛选,把分数及格(60分)的同学放入一个新数组。 

function fun(score) {
      let newScore = []
      for (let i = 0; i < score.length; i++) {
        if (score[i] >= 60) {
          newScore[newScore.length] = score[i]
        }
      }
      return newScore
    }
    let newScore = fun([90, 20, 49, 10, 80, 65, 44, 70, 60])
    console.log(newScore) 

3、数组排列,把一组数据按从大到小排列(冒泡排序)。 

function fun(arr) {
      for (let i = 0; i < arr.length - 1; i++) {
        for (let j = 0; j < arr.length - i - 1; j++) {
          if (arr[j] < arr[j + 1]) {
            var num = arr[j]
            arr[j] = arr[j + 1]
            arr[j + 1] = num
          }
        }
      }
      return arr
    }
    let newArr = fun([13,34,23,4,6,243,2])
    console.log(newArr)

 4、   var perArr = [

        { name: "张三", age: 18 },

        { name: "李四", age: 28 },

        { name: "王五", age: 8 },

        { name: "张六", age: 48 },

        { name: "赵七", age: 38 },

      ];

    创建一个函数,可以将perArr中的满18岁的Person提取出来,

    然后封装到一个新的数组中并返回

function fun(perArr) {
      let newPerarr = []
      for (let i = 0; i < perArr.length; i++) {
        if (perArr[i].age >= 18) {
          newPerarr[newPerarr.length] = perArr[i]
        }
      }
      return newPerarr
    }
    let newPerarr = fun([
      { name: "张三", age: 18 },
      { name: "李四", age: 28 },
      { name: "王五", age: 8 },
      { name: "张六", age: 48 },
      { name: "赵七", age: 38 },
    ])
    console.log(newPerarr)

5、去除重复的数组 var arr = [1, 2, 3, 2, 2, 1, 3, 4, 2, 5];

function fun(arr) {
      for (let i = 0; i < arr.length; i++) {
        let j = i + 1
        while (j < arr.length) {
          if (arr[i] === arr[j]) {
            arr.splice(j, 1)
            continue
          }
          j++
        }
      }
      return arr
    }
    let newArr = fun([1, 2, 3, 2, 2, 1, 3, 4, 2, 5])
    console.log(newArr)

 6、已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”。

function fun(foo) {
      let arr = foo.split('')
      console.log(arr)
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] == '-') {
          arr[i + 1] = arr[i + 1].toUpperCase()
          arr.splice(i, 1)
        }
      }
      let newFoo = arr.join('')
      return newFoo
    }
    let newFoo = fun('get-element-by-id')
    console.log(newFoo)

  7、计算如下数组的和以及平均值。var arr = [10,5,6,9,4,5];

function fun(arr) {
      let sum = 0
      for (let i = 0; i < arr.length; i++) {
        sum += arr[i]
      }
      return [sum, sum / arr.length]
    }
    let count = fun([10, 5, 6, 9, 4, 5])
    console.log(`该数组的和为:${count[0]}
该数组的的平均值为:${count[1]}`)

8、求数组中的最大值。var arr = [10,5,6,9,4,1];

function fun(arr) {
      let max = arr[0]
      for (let i = 1; i < arr.length; i++) {
        max = max < arr[i] ? arr[i] : max
      }
      return max
    }
    let max = fun([10,5,6,9,4,1])
    console.log(max)

9、定义两个数组并合并。

function fun(a, b) {
      for (let i = 0; i < b.length; i++) {
        a.push(b[i])
      }
      return a
    }
    let arr = fun([32,342,5,3], [33,4,6,7,8])
    console.log(arr) 

10、弹出框接收N位评委的打分,去掉一个最高分和一个最低分,求最后的平均分。

function fun(N) {
      let arr = []
      for (let i = 1; i <= N; i++){
        let grade = +prompt(`第${i}位评委的打分为:`)
        arr.push(grade)
      }
      let max = arr[0]
      let min = arr[0]
      let sum = 0
      for (let j = 1; j < arr.length; j++){
        max = max < arr[j] ? arr[j] : max
        min = min > arr[j] ? arr[j] : min
        sum += arr[j]
      }
      return (sum - max - min)/(arr.length - 2)
    }
    let avg = fun(5)
    console.log(avg)

11、新建一个数组,里面存放1-10个整数。(核心原理:使用循环来追加数组)

let arr = []
    for (let i = 1; i <= 10; i++) {
      arr.push(i)
    }
    console.log(arr) 

 12、将数组中[1,2,3,2,8,9,3,2,7]中的2去掉,形成一个没有2的新数组

let arr = [1,2,3,2,8,9,3,2,7]
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] === 2) {
        arr.splice(i, 1)
      }
    }
    console.log(arr)

13、对数组进行随机排序。

    var arr = ["张三","李四","王五","赵六","小帅","小红","大壮","小明","王芳"];

function fun(arr) {
      let newArr = []
      for (let i = 0, len = arr.length; i < len; i++) {
        let random = parseInt(Math.random()*arr.length)
        newArr.push(arr[random])
        arr.splice(random, 1)
      }
      return newArr
    }
    let newArr = fun(["张三","李四","王五","赵六","小帅","小红","大壮","小明","王芳"])
    console.log(newArr)

14、把下面数组的首尾两个元素互换

    var arr = ["鹿晗", "王俊凯", "蔡徐坤", "彭于晏", "周杰伦", "刘德华", "赵本山"];

function fun(arr) {
      let str = arr[0]
      arr[0] = arr[arr.length-1]
      arr[arr.length-1] = str
      return arr
    }
    let newArr = fun(["鹿晗", "王俊凯", "蔡徐坤", "彭于晏", "周杰伦", "刘德华", "赵本山"])
    console.log(newArr)

15、随机选学员

    从以下学员名单中随机选出4个学员:

    var arr = ["鹿晗", "王俊凯", "蔡徐坤", "彭于晏", "周杰伦", "刘德华", "赵本山"];

      注意:不要有重复的学员

function fun(arr) {
      let newArr = []
      for (let i = 0; i < 4; i++) {
        let random = parseInt(Math.random() * arr.length)
        newArr.push(arr[random])
        arr.splice(random, 1)
      }
      return newArr
    }
    let newArr = fun(["鹿晗", "王俊凯", "蔡徐坤", "彭于晏", "周杰伦", "刘德华", "赵本山"])
    console.log(newArr)

16、封装一个函数,判断某个值是否存在某个数组里面。

 function fun(a, arr) {
      for (let i = 0; i < arr.length; i++) {
        if (a === arr[i]) {
          return alert(`${a}在${arr}里面`)
        }
      }
      return alert(`${a}不在${arr}里面`)
    }
    fun(24, [1,24,4,6,7,5,6,]) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值