从一个对象数组中的某一个属性组成新数组,然后比较大小

22 篇文章 0 订阅
5 篇文章 0 订阅
需求:从一个对象数组中的某一个属性组成新数组,然后比较大小
示例数组:
//原始数组
expmArr = [{name: "zhangsan", age: "18"},{name: "lisi", age: "20"},{name: "wangwu", age: "17"},{name: "zhaoliu", age: "19"}] 
//生成新数值
arrNew = ["18", "20", "17", "19"]
  • 实现如下:
        //方法一        
        let arrNew = []; //定义数组
         expmArr.forEach(rows => {
           arrNew.push(rows.age);
         });
        //方法二
         let arrNew= expmArr.map(item => {
           return item.age;
         });
  • 比较大小 

1.es6拓展运算符

Math.max(...arrNew)

2.es5apply方法

Math.max.apply(null,arrNew);
//一维数组
alert(Math.max.apply(null, arrNew));//最大值
alert(Math.min.apply(null, arrNew));//最小值

//多维数组
var a=[1,2,3,[5,6],[1,4,8]];
var newa=a.join(",").split(",");//转化为一维数组
alert(Math.max.apply(null,newa));//最大值
alert(Math.min.apply(null,newa));//最小值


3.for循环

let max = arrNew[0]
for(let i = 0; i < arrNew.length - 1; i++) {
  max = max > arrNew[i+1] ? max : arrNew[i+1]
}

//
var arr = [9,8,55,66,49,68,109,55,33,6,2,1];
  
var max = arr[0];

function findMax( i ){
  if( i == arr.length ) return max;
  if( max < arr[i] ) max = arr[i];
  findMax(i+1);
}
 
findMax(1);
console.log(max);

//
var arr = [9,8,55,66,49,68,109,55,33,6,2,1];  
var max = arr[0];
for(var i = 1; i < arr.length; i++){
  if( max < arr[i] ){
    max = arr[i];
  }
}

console.log(max);

4.sort方法

arr.sort((num1. num2) => {
  return num1 - num2 < 0
})
arr[0]

5.reduce方法

arr.reduce((num1, num2) => {
  return num1 > num2 ? num1 : num2
})

6.冒泡排序(从小到大排列)

for (var i = 0; i < arrNew.length - 1; i++){
  for (var j = 0; j < arrNew.length - 1 - i; j++) {
    if (arrNew[j] > arrNew[j + 1]) {
      var temp = arrNew[j];
      arrNew[j] = arrNew[j + 1];
      arrNew[j + 1] = temp;
    }
  }
}

查找数组中最大值的5种方法 - 星空飘渺 - 博客园

js提取对象数组中的某一个属性组成新数组 - 爱就码上行动 - 博客园

小程序中不能使用数组的forEach()循环方法吗? | 微信开放社区

  • 时间数组 找出最大的元素值
let timeArry = ["2022-02-24 17:01:02","2022-02-26 07:58:02", "2022-02-22 17:01:02", "2022-02-24 17:09:02", "2022-02-25 17:58:02","2022-02-25 15:58:02", "2022-02-23 17:08:02"]; //定义时间数组
    console.log("时间数组", timeArry);

    // let maxq = timeArry[0];
    // for (let i = 0; i < timeArry.length - 1; i++) {
    //  maxq = maxq < timeArry[i + 1] ? timeArry[i + 1] : maxq
    //   console.log("121321",maxq)
    // }

    var start = timeArry[0];
    var end = timeArry[timeArry.length - 1];
    console.log("时间数组第一个", start);
    console.log("时间数组最后一个", end);
    //方法一
    for (var i = 0; i < timeArry.length - 1; i++) {
          for (var j = 0; j < timeArry.length - 1 - i; j++) {
            if (timeArry[j] > timeArry[j + 1]) {
              var temp = timeArry[j];
              timeArry[j] = timeArry[j + 1];
              timeArry[j + 1] = temp;
            }
          }
        }
        var lastTime= timeArry[timeArry.length - 1];
        console.log("lastTime"+lastTime);
     
    //通过for循环获取对比次数
    var max1 = timeArry[0]; //对比结果是最大值
    var min = timeArry[0]; //对比结果是最小值
    for (var i = 0; i < timeArry.length; i++) {
      // 最大值
      if (max1 < timeArry[i]) {
        //通过if判断把最大值赋给max;
        max1 = timeArry[i];
      }
      // 最小值
      if (min > timeArry[i]) {
        //通过if判断把最小值赋给min;
        min = timeArry[i];
      }
    }
    console.log("最大值", max1);
    console.log("最小值", min);

    //方法二
    //找出时间数组中最大的元素值
    let max = timeArry[0];
    for (let i = 0; i < timeArry.length - 1; i++) {
          max = max < timeArry[i + 1] ? timeArry[i + 1] : max
        }

    //for (let i = 0; i < timeArry.length - 1; i++) {
     //max = max > timeArry[i + 1] ? timeArry : timeArry[i + 1]
    //}
    console.log("max", max);
  • js 获取当前时间
//获取当前时间
         var currentTime = new Date();
         console.log("当前时间:", currentTime);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值