splice 指定位置添加 指定位置删除和indexOf返回数组中的索引

133 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情

一。for in 对象和数组进行循环

练习一。

一个按钮 点击 弹出prompt 猜猜保时捷的颜色 用户输入之后 给obj添加属性color 值就是用户输入的颜色 开始循环对象,如果color的值是红色,则alert('恭喜你猜对了') 否则就提示 alert('你猜错请刷新页面继续猜')

       <button onclick="fn()">猜猜保时捷颜色吧</button>
<script>
    let obj = {
        name: '张三',
        age: 30,
        car: "保时捷"
    };
    let flag = false;
    function fn() {
        let str = prompt('猜猜保时捷颜色')
        // 给对象添加新的属性color和值 str
        obj.color = str;
        for (var key in obj) {

            if (obj[key] == '红色') {
                /* 使用开关 如果答对了则改变flag */
                /* 目的让打错的时候只弹出一次 */
                flag = true;
            }
        }
        // 根据flag的true或者false 显示对应的提示且只提示一次 
        if (flag) {
            alert('恭喜你猜对了')
        } else {
            alert('你猜错了,请刷新页面继续')
        }
    }

</script>

1.png

二。concat

concat合并两个数组并生成一个新数组

      <script>
    let a=[1,2,3]
    let b=[4,5,6]
    let all=a.concat(b)
    console.log('原数组a为:'+a)
    console.log('原数组b为:'+b)
    console.log('合并后数组为:'+all)
</script>

1.png 练习二。

原来有个数组 let arr = ['奥迪','宝马','奔驰'],还有个空数组 let arr2 = []。

页面上有个按钮叫添加 点一下 弹出一个prompt 你输入一辆汽车的品牌 添加到arr2。

当中 还有个按钮叫合并 可以把arr 和 arr2 合并成一个新数组 并且循环整个新数组 把新数组的每一个值都打印在页面上

       <button onclick="fn()">添加</button>
<button onclick="fa()">合并</button>
<script>
    let arr = ['宝马', '奥迪', '奔驰'];
    let arr2 = [];
    function fn() {
        let a = prompt('输入汽车品牌')
        // 在arr2里添加输入的汽车品牌
        arr2.push(a)
    }
    function fa() {
        // 创建新的数组合并arr和arr2
        let all = arr.concat(arr2);
        for (var i in all) {
        } document.write(all)
    }
</script>

1.unshift在数组最前面添加内容

2.shift在数组最前面删除内容

3.push在数组最后添加内容

4.pop在数组最后删除内容

三。indexOF

indexOf 返回字符 在数组中的索引

★ 如果字符不存在数组中,会返回-1

       <script>
     let arr = ['宝马', '奥迪', '奔驰'];
   let a=  arr.indexOf('奔驰')
   console.log('奔驰在arr中的索引为:'+a)
</script>

123.png

练习。

      <script>
    var arr=[5,4,26,9,4,8,5,14];
    var arr2=[]
    for(var i in arr){
        // arr2用indexOf来循环判断arr中的每一项 是否存在于arr2 
        // 如果不存在就push进去
        if(arr2.indexOf(arr[i])==-1){
            arr2.push(arr[i])
        }
    }document.write(arr2)
</script>

45.png 四,splice

splice 指定位置添加 指定位置删除

splice 三个参数 :
①。第一个参数表示 所在数组的位置

②。 第二个参数表示 删除几个

③。第三个参数表示 添加的内容

 <script>
 let arr = ['宝马', '奥迪', '奔驰'];
//  从奥迪开始删除一个
 arr.splice(1,1)
 document.write(arr)
</script>

4345.png

 <script>
 let arr = ['宝马', '奥迪', '奔驰'];
//  从奥迪开始删除0个
 arr.splice(1,0)
 document.write(arr)
 </script>

6.png

 <script>
 let arr = ['宝马', '奥迪', '奔驰'];
//  从奥迪开始删除0个,并添加大众
 arr.splice(1,0,'大众')
 document.write(arr)
 </script>

7.png

练习。 点击删除按钮 弹出prompt弹框,输入汽车品牌, 如果存在于arr 就把他删掉 ,不存在 就把他添加到 数组的第二个位置

  <button onclick="fn()">点我试试</button>
<script>
    let arr = ['奥迪', '宝马', '奔驰'];
    function fn() {
        let a = prompt('输入汽车品牌')
        // 如果输入的品牌不存在arr中,把他添加在数组第二的位置
        if (arr.indexOf(a) == -1) {
            arr.splice(1, 0, a)
            document.write(arr)
        } else {
            // 如果输入的值在arr中,就删除它
            arr.splice(arr.indexOf(a), 1)
            document.write(arr)
        }
    }
</script>

44.png