当前位置: 首页 > news >正文

09_JavaScript数据操作方法_数组2

目录

01-求每五个数的平均值

02-把数增加为原来的30%

03-判断是否存在

04-数组方法

05-数组去重

06-插入数组并排序

07-输出对象_学生信息对象

08-数据类型存储_堆栈内存

一、数据类型之间存储的区别(重点)


 

01-求每五个数的平均值

定义一个含有30个整形元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个求出一个平均值,放在另一个数组中并输出 编程实现

var arr = [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40...];
不要写死一个数组 定义一个空数组  循环 往空数组里push  

每五个求出一个平均值
[6, 16,26, 36,46,56]
 //01-求每五个数的平均值
   
    <script>
        // 1、定义一个含有30个整形元素的数组,按顺序分别赋予从2开始的偶数,
        // 然后按顺序每五个求出一个平均值,
        // 放在另一个数组中并输出  编程实现


        // var arr = [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40...60];

        // 1-通过循环创建出30个元素的偶数数组
        var arr = [];
        var newArr = [];
        for(var i=1;i<=60;i++){
            if(i%2===0){
                arr.push(i)
            }
        }
        var sum = 0;
        // 2-按顺序每五个求出一个平均值   如何划分5个数一组  %5===0
        for(var i=0;i<arr.length;i++){
            // i = 0 1 2 3 4 5....29
            // 平均值 5个数的和相加  /5
            var item = arr[i]; //item 指的是 数组里的每一个元素
            sum = sum+item; 
            if((i+1)%5===0){
               var a = sum / 5;
               newArr.push(a)
               //每次算完平均数后 把sum归零  保证下一组平均数的和是从0开始累加
               sum = 0
            }
        }
        console.log(newArr);//[6, 22, 48, 84, 130, 186]
        
    </script>

02-把数增加为原来的30%

编写一个函数,把数组中的每一个数都增加30%,返回一个新数组。

//02-把数增加为原来的30%

var arr = [10,100,200];
function fn(){
	//XXXXX
}
    <!-- 编写一个函数,把数组中的每一个数都增加30%,返回一个新数组 -->
    <script>
        var arr = [10,100,200,300];
        var newArr = [];
        function map(){
            //idx 自定义的值 就是索引 index 可以
            for(idx in arr){
                var res = arr[idx] * (1+0.3);
                newArr.push(res);
            }
           return newArr;
        }
        let result = map(arr);
        console.log(result);
    </script>

03-判断是否存在

编写一个函数 ,判断数组中是否存在55这个元素,返回布尔值 。

var arr = [1,2,3,4,55];
var arr1 = [1,2,3,4,6,7,8];
function fn(){
	XXXXXX
}
fn(arr,55); //true
fn(arr1,55);//false
    <script>
        var arr = [1, 2, 3, 4, 5, 55];
        var arr1 = [1, 2, 3, 4, 5, 66, 88];
        // function has(ary, num) {
        //     for (var i = 0; i < ary.length; i++) {
        //         var item = ary[i]; //数组的每一项
        //         if (item == num) {
        //             return true
        //         }
        //     }
        //     //如果这个循环走完了,还没返回true  说明了这个数不存在数组中
        //     return false
        // }
        // let res = has(arr, 55); //true
        // let res1 = has(arr1, 55);//false
        // console.log(res, res1);



        function has(ary,num){
                //-1 代表不存在
                if( ary.includes(num)==true){
                    return true
                }else{
                    return false
                }              
        }

        var res = has(arr, 55); //true
        var res1 = has(arr1, 55);//false
        console.log(res, res1);

    </script>

04-数组方法

编写一个函数,norepeat(arr) 将数组中的重复元素去掉,并返回新数组

        var arr = [1,2,3,44,55,66,77,2,2,2];
        // 判断55在不在数组中
        // var res = arr.indexOf(2);
        // var res1 = arr.indexOf(99);
        // console.log(res);//1
        // console.log(res1);//-1  代表不存在    其他就存在


        // let res = arr.lastIndexOf(2);
        // console.log(res);

        var res = arr.includes(9);
        var res1 = arr.includes(2);
        console.log(res1);
    </script>

05-数组去重

有一个从小到大排好序的数组,现在输入一个数,输入之后按照原来从小到大的排序插入到数组中

    <script>
        // 编写一个函数,norepeat(arr) 将数组中的重复元素去掉,并返回新数组
        var arr = [1,22,22,22,44,3,7,88,88];
        var newArr = [];
        function norepeat(ary){
            for(item of ary){
                //indexOf 判断一个元素在不在数组里 如果不在就返回-1
                if(newArr.includes(item)==false){
                    newArr.push(item)
                }
            }
            return newArr;
        }
       let res = norepeat(arr);
       console.log(res);//[1, 22, 44, 3, 7, 88]
    </script>

06-插入数组并排序

创建一个对象,该对象存储一个学生的信息,信息包括学号、身份证、年龄、性别,同时包含一个自我介绍的方法,用来输出该对象的索引信息

    <script>
        // 有一个从小到大排好序的数组,现在输入一个数,输入之后按照原来从小到大的排序插入到数组中
       var arr = [1,2,3,4,5,6,33,33,55];
    //    arr.push(4);
    //   // 直接sort 只能排个位数
    //    arr.sort(function(a,b){
    //     return a-b
    //    })
    //    console.log(arr);



    function abc(ary,num){
        ary.push(num);
        ary.sort(function(a,b){
            return a-b
        })
        return ary;
    }
    var res = abc(arr,99);
    console.log(res);

    </script>

07-输出对象_学生信息对象

    <script>
        // 6、创建一个对象,该对象存储一个学生的信息,信息包括学号、身份证、年龄、性别,
        // 同时包含一个自我介绍的方法,用来输出该对象的索引信息
        var obj = {
            id:1,
            idCard:4114021991000000,
            age:18,
            sex:"女",
            desc:function(){
                // console.log(obj.id);
                // console.log(obj.idCard);
                // console.log(obj.age);
                for(key in obj){
                    console.log(obj[key]);
                }
            }
        }
        obj.desc()
    </script>

08-数据类型存储_堆栈内存

    <!-- 栈内存:基本数据类型 -->
    <script>
        // var num = 10;
        // var num2 = num;
        // num2 = 200
        // console.log(num);//10
        // console.log(num2);//200

        // var str = "10";
        // var boo = true;


        var obj = {
            name:"of",
            age:18,
            address:"北京海淀"
        }
        var obj1 = obj;
        obj1.name="哈哈哈哈"
        console.log(obj.name);
        console.log(obj1.name);
    </script>

一、数据类型之间存储的区别(重点)

  • 数据类型分成

    • 基本数据类型

number   string  boolean  null  undefined
  • 复杂数据类型
Object  Array  ....
可以通过new 关键字创建出来的对象  都是复杂数据类型

数据类型存储区别

  • 我们的变量在内存里,存储空间里分成两种

  • 栈内存:比较小的内存:主要存储基本数据类型

  • 堆内存:比较大的内存:主要存储复杂数据类型

        var num = 10;
        var num2 = num;
        num2 = 200
        console.log(num);//10
        console.log(num2);//200

相当于把num的值复制了一份给num2
-赋值以后两个数据没有关系  互不影响

 

相关文章:

  • 基于Zookeeper的微服务配置管理与灰度发布实战指南
  • WEB API 设计规范
  • Leetcode——1047. 删除字符串中的所有相邻重复项
  • 阶跃星辰开源300亿参数视频模型Step-Video-TI2V:运动可控+102帧长视频生成
  • Hyperlane 似乎是一个轻量级、高性能的 Rust HTTP 服务器库
  • Redis原理:Monitor 实现
  • 雕马快租:直播设备租赁新趋势,低成本重构传统营销模式的破局之道
  • 缓存相关问题
  • 单例模式在Python中的实现和应用
  • 【SpringBoot篇】SpringBoot的自动装配原理
  • 安装SQL Server 2022常见问题和环境配置
  • http://noi.openjudge.cn——4.7算法之搜索_1814:恼人的青蛙
  • unable to load vboxguest kernel module
  • Redis 核心源码解析:从设计哲学到企业级应用实践
  • Triformer:长序列多变量时间序列预测
  • 记录一次部署k3s后,服务404 page not found,nginx显示正常
  • PL/SQL语言的字符串处理
  • VUE项目初始化
  • 深入理解Golang标准库`testing/fstest`包的用法和技巧进行文件系统测试
  • 【Git】用Git命令克隆一个远程仓库、修改仓库中的文件,并将更改推送到远程仓库
  • 重庆黔江一足疗养生馆负责人涉嫌违法犯罪被移送检察机关
  • 上海地铁:一孩童鞋子卡于电梯梯级处,其间未造成人员受伤
  • 上海普陀:原则同意将工业河更名为同济湾河
  • 66岁华仁世纪集团有限公司创始人、董事长梁福东逝世
  • 半年不到再换岗:伊春市委常委、政法委书记方春彪任伊春森工集团党委书记
  • 印军称中国向巴基斯坦提供防空系统协助,外交部:中方十分重视与印、巴两国关系