day07(Es5新增的数组方法,选择排序、冒泡排序,引用数据类型)

本文详细介绍了JavaScript中的数组方法,包括map、forEach、filter、some和every的使用及返回值,以及选择排序和冒泡排序两种排序算法的实现过程。此外,还探讨了基本数据类型和引用数据类型的区别,如存储位置和变量交互的影响。
摘要由CSDN通过智能技术生成

Es5新增的数组方法;

1.map():

语法:
	arr.map(function(item,i){
	reyurn item*3;
	})
含义:  遍历数组,item代表的是每一个元素,i代表下标
返回值:映射出来的新数组			

2.forEach():

语法:
    arr.forEach(function(item){
		//没有return
	})
含义:遍历数组
返回值:无

3.filter():

语法:
	arr.filter(function(item,index){
	return item>8
	})
含义:过滤满足条件的元素
返回值:数组形式的大于8的元素

4.some():

语法:
	arr.some(function(item,index){
	return item>8
	})
含义:数组中有一个满足条件的,返回值就是true都不满足才会返回false
返回值:true或者false

5.every()

语法:
	arr.every(function(item,index){
	return ittem>8
	})
含义:数组中必须 每一个都大于8,返回的是true,有一个不大于8的就返回false
返回值:true或者false

数组排序:选择排序/冒泡排序

选择排序:

排序思路:假设第一个元素是最小值,拿第一个元素和后面的所有元素进行对比,如果发现有比第一个元素还小的,就进行交换。

         arr[0] 和 arr[1]      [8,12,5,3]
         arr[0] 和 arr[2]      [5,12,8,3]
         arr[0] 和 arr[3]      [3,12,8,5]

        //  经过一轮比较,最小跑前面了
        
        // 第一轮比较完毕,第一个元素已经确定最小啦

        arr[1] 和 arr[2]      [3,8,12,5]
        arr[1] 和 arr[3]      [3,5,12,8]
        // 
        arr[2]和arr[3]        [3,5,8,12]
        ====================================
        //  简化成for循环嵌套
    // 由于上述循环判断了3次,总共有4个元素,所有-1

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

冒泡排序:

排序思路:相邻两个元素进行比较,大的数字往后排

          第一轮
         arr[0]和arr[1]     [8,12,5,1]
         arr[1]和arr[2]     [8,5,12,1]
         arr[2]和arr[3]     [8,5,1,12]

        //  比完一轮,最大的跑最后了

        // 第二轮: 
        arr[0] 和arr[1]     [5,8,1,12]
        arr[1]和arr[2]      [5,1,8,12]
        // 第二轮,最大的两个跑后面了

        // 第三轮
        arr[0]和arr[1]    [1,5,8,12]
        
        ===============================
         // 这个-1的目的是,4个元素,排够3次就够了
    for (var j = 0; j < arr.length - 1; j++) {
        // -j的目的是 减少排序的次数,由于最大的元素已经排到了最后了,就不需要再排了
        for (var i = 0; i < arr.length - 1 - j; i++) {
            if (arr[i] > arr[i + 1]) {
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
    }
    console.log(arr);

基本数据类型和引用数据类型

基本数据类型:

number,string,boolean,undefined,null

1.基本数据类型变量存的是值
2. 基本数据类的变量存储在栈内存
3. 基本数据类型的变量和变量互不影响
      var a = 10;

引用数据类型:

引用数据类型: obejct , array

通过tyepof检测引用数据类型的结果都是object

1.引用数据类型的变量存储的是地址值
2. 基本数据类的变量存储在堆内存
3. 引用数据类型的变量如果和另外一个引用数据类型的变量公用一个地址,
     其中一个变化,另外一个也会受到影响
      var arr = [12,43,12]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值