js数组学习

js数组

数组常用方法 push

push 是用来在数组的末尾追加一个元素

 var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天']
​
         alert(test.push('貂蝉')) //长度是8
​
         alert(test);// ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天','貂蝉']

数组常用方法 pop

pop 是用来删除数组末尾的一个元素

 var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天'] 
    alert(test.pop()) //删除数组的最后一个数据 武则天
    alert(test) ['李白','安琪拉','猪八戒','韩信','李信','小乔']

数组常用方法 unshift

unshift 是在数组的最前面添加一个元素

 var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天'] 
 alert(test.unshift('亚索')) // 返回的也是新数组的长度
 alert(test) //亚索,李白,安琪拉,猪八戒,韩信,李信,小乔,武则天

数组常用方法 shift

shift是删除数组最前面的一个元素

var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天'] 
alert(test.shift('猪八戒')) //李白 虽然指定猪八戒 但是还是删除数组的第一个元素
alert(test) //安琪拉,猪八戒,韩信,李信,小乔,武则天

数组常用方法 splice

截取数组中的某些内容,按照数组的索引来截取

 //返回的是截取的数据 不管增删改都是返回截取的数据 
        // 如果实现数组的增 splice(开始的位置,0) 那么返回的结果是空白 
        //原数组发生了改变 
​
        //一个方法完成了数组的增删改 
        //数组.splice(开始的索引位置,0,新元素1,...新元素n) 增
        //数组.splice(开始的索引位置,删除的个数) 删 
        //数组.splice(开始的索引位置,删除的个数,替换的元素1,...元素n) 改 
​
​
        // 数组.splice(开始的索引,截取多少个)
​
        var test = ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天']
​
        // var res = test.splice(2,2) // 删除
        // alert(test) //李白,安琪拉,李信,小乔,武则天 原数组发生了变化
        // alert(res) //猪八戒,韩信 
        
        // alert(test.splice(2,2,'李青','格雷福斯') )//替换
        alert(test.splice(2,0,'李青','格雷福斯'))// 增加
​
        // alert(test)

数组常用方法 reverse

reverse 是用来反转数组使用的

var arr = [1, 2, 3]
​
// 使用 reverse 方法来反转数组
arr.reverse()
​
console.log(arr) // [3, 2, 1]

数组常用方法 sort

是用来给数组排序的

var arr = [2, 3, 1]
​
// 使用 sort 方法给数组排序
arr.sort()
​
console.log(arr) // [1, 2, 3]

数组常用方法 concat

是把多个数组进行拼接

 + 语法: 原始数组.concat(数1, 数2, 数据, ...)
        + 作用: 进行数组拼接, 把参数的所有数组或者数据, 拼接在原始数组身上
        + 返回值: 拼接好的数组
        + 和 push 的区别
          => 改变原始数组
            -> push 直接改变原始数组
            -> concat 不会改变原始数组
          => 插入数据
            -> push 直接把数据插入
            -> concat 如果遇到数组, 会把数组拆开, 把每一个数据依次插入
   concat()
​
   var arr1 =  ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天']
​
   var res = arr1.concat([500,'周瑜'],'诸葛亮',['铁拐李','黄忠'])
   document.write('原始数组',arr1,'<br>')
   document.write('拼接好的数组',res,'<br>')
   document.write('原始数组',arr1)

数组常用方法 join

是把数组里面的每一项内容链接起来,变成一个字符串

 join()  数组=>字符串
        + 语法: 数组.join('连接符')
        + 作用: 使用连接符, 把数组内的每一个数据连接成一个字符串(不写默认使用 逗号)
        + 返回值: 连接好的字符串
    join()
    var arr1 =  ['李白','安琪拉','猪八戒','韩信','李信','小乔','武则天']
    var res = arr1.join('$')
    document.write('原始数组',arr1,'<br>')
    document.write('拼接好的字符串',res,typeof(res),'<br>')
    document.write('原始数组',arr1)

for和for in循环

  • 因为数组的索引就可以获取数组中的内容

  • 数组的索引又是按照 0 ~ n 顺序排列

  • 我们就可以使用 for 循环来循环数组,因为 for 循环我们也可以设置成 0 ~ n 顺序增加

  • 我们把这个行为叫做 遍历

    var arr = [1, 2, 3, 4, 5]
    ​
    // 使用 for 循环遍历数组
    for (var i = 0; i < arr.length; i++) {
      console.log(arr[i])
    }
    ​
    // 会在控制台依次打印出 1, 2, 3, 4, 5
    • i < arr.length 因为 length 就是数组的长度,就是一个数字,所以我们可以直接用它来决定循环次数

    • console.log(arr[i]) 因为随着循环,i 的值会从 0 开始依次增加

    • 所以我们实际上就相当于在打印 arr[0] / arr[1] / ...

  • 因为 对象 是没有索引的,所以我们没有办法使用 for 循环来遍历

  • 这里我们使用 for in 循环来遍历对象

  • 先来看一段代码

    var obj = {
      name: 'Jack',
      age: 18
    }
    ​
    for (var key in obj) {
      console.log(key)
    }
    ​
    // 会在控制台打印两次内容,分别是 name 和 age
    • for in 循环的遍历是按照对象中有多少成员来决定了

    • 有多少成员,就会执行多少次

    • key 是我们自己定义的一个变量,就和 for 循环的时候我们定义的 i 一个道理

    • 在每次循环的过程中,key 就代表着对象中某一个成员的 属性名

数组的排序

冒泡排序

// 口诀  
// 双层for 循环 一层少一次
// 里层减外层 变量相交换 
var balls = [18,2,20,33,1,13]  // 1 2 13 18 20 33
for(var i=0;i<balls.length-1;i++){  //趟数
    for(var j=0;j<balls.length-1-i;j++){  //交换的次数 
        if(balls[j]>balls[j+1]){
            var temp = balls[j];
            balls[j] = balls[j+1];
            balls[j+1] = temp;
            document.write(balls+'<br>')
        }
    }
    
}
​
​
console.log('交换完成以后',balls)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值