数组的常见案例及应用

1.写一个方法,求数组中的最大值

//思路:
//1.定义一个变量记录数组中的最大值
//2.遍历整个数组,让数组的每一个元素都和该变量进行对比即可
//3.当变量遇到比它大的元素,则让该变量记录该元素的值,当循环结束时,最大值产生了
 
    function max(arr){
        var max = arr[0];
        for(var i=0;i<arr.length;i++){
            if(max<arr[i]){
            max=arr[i];
            }
        }
        return max;
    }
    var arr1 = [9,10,7,3];
    console.log(max(arr1));//10

2.翻转数组

//方法1:
        var arr = [3, 9, 10, 11];
        var newArr = arr.reverse(arr);
        console.log(newArr);//[11,10,9,3]

//方法2:
        ar arr = [3, 9, 10, 51];
        var newArr = [];
        for (var i = arr.length - 1; i >= 0; i--) {
            newArr.push(arr[i]);
        }
        console.log(newArr);//[51, 10, 9, 3]

3.写一个方法,求数组中奇数的个数,偶数的个数

 function res(arr) {
            var odd = 0;
            var even = 0;
            for (var i in arr) {
                arr[i] % 2 === 0 ? even++ : odd++;
            }
            console.log('偶数的个数为:' + even);
            console.log('奇数的个数为:' + odd);
        }
        var arr = [12, 51, 80, 40, 10];
        res(arr);

4.求数组的和,最大值,最小值;

  var arr = [2, 3, 4, 5, 7, 8, 10];
        var sum = 0;
        var max = arr[0];
        var min = arr[0];
        arr.forEach(item => {
            sum += item;
            if (max < item) {
                max = item;
            };
            if (min > item) {
                min = item;
            }
        })
        console.log('该数组的和为:' + sum); //39
        console.log('该数组的最大值为:' + max); //10
        console.log('该数组的最小值为:' + min); //2

5.写一个方法,把数组中相同的值放到一个数组里

var arr = [
    {age:12},
    {age:18},
    {age:22},
    {age:22},
    {age:12},
    {age:22},
    {age:12},
    {age:18},
];
function res(arr){
var o = {};
arr.forEach(item=>{
    if(o[item.age]){
        o[item.age].push(item);
    }else{
         o[item.age]=[item];
    }
})
console.log(o);
}
res(arr);

 


6.给一个数组中字符串间添加分隔符

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
方法一:
var newArr = arr.join('|');
console.log(newArr);//1|2|3|4|5|6|7|8|9

方法二:
 var str = arr[0];
 var sep = '|';
 for (var i = 1; i < arr.length; i++) {
      str += sep + arr[i];
  }
 console.log(str);//1|2|3|4|5|6|7|8|9

7.两个数组中,把id相同的对象拼接到一起,返回新的数组

var arr = [{
            id: 1,
            name: '小明'
        }, {
            id: 2,
            name: '小红'
        }];
        var arr1 = [{
            id: 1,
            age: 13
        }, {
            id: 2,
            age: 18
        }];

var newArr =[];
for(var i =0;i<arr.length;i++){
    for(var j=0;j<arr1.length;j++){
        if(arr[i].id ==arr1[j].id){
            var obj = {};
            obj.id = arr[i].id;
            obj.name = arr[i].name;
            obj.age = arr1[j].age;
            newArr.push(obj)
        }
    }
}
console.log(arr);
console.log(arr1);
console.log(newArr);

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屋顶上的小喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值