JS(二)

本文详细介绍了JavaScript中数组的各种操作方法,包括数组的定义、数组的增删改查、排序及随机化等。通过实例演示了如何使用这些方法来实现特定的功能。

var url=['img0.jpg','img1.jpg','img2.jpg','img3.jpg'];
var ifo=['王昭君','鲁班','后羿','亚瑟'];

JSON数据格式:

var url_ifo={
url:['img0.jpg','img1.jpg','img2.jpg','img3.jpg'];
ifo:['王昭君','鲁班','后羿','亚瑟'];
}
alert(url_ifo.url[2]);//'img2.jpg'
alert(url_ifo.url);//:'img0.jpg','img1.jpg','img2.jpg','img3.jpg';
var json={'value':'code'}
alert(json.value);
alert(json['value']);

数组可以包json,json可以包数组:

var arr=[{'name':'zsw','age':21},{'value':code,'money':10000}];
alert(arr[0].name+'今年有'+arr[1]['money']+'钱');

for-in遍历json

var json={'name':'zsw','age':21,'value':code,'money':10000};
for(var attr in json){
alert(attr);//name、age、value、money
alert(json[attr]);//zsw、21、code、10000
}
var json2={
url:['img0.jpg','img1.jpg','img2.jpg','img3.jpg'];
ifo:['王昭君','鲁班','后羿','亚瑟'];
}
for(var attr in json2){
for(var i=0;i<json2[attr].length;i++)
{
alert(json2[attr][i]);//弹出img0.jpg,img1.jpg,img2.jpg,img3.jpg,王昭君,鲁班,后羿,亚瑟
}
}

for in与for循环的区别

数组、json均可用for in
json不可以用for循环

数组定义

两种定义写法

1、var arr=[1,2,3];
2、var arr=new Array(1,2,3);
var arr1=new Array(3);//设置数组长度
var arr2=new Array(“3”);//设置数组里面元素值
var arr3=['www',2,3];
arr.length=1;//把数组长度变为1

清空数组

1、arr.length=0;
2、arr=[]//数组重新复制,效率会比较高

数组的添加

var arr=[];
arr.push(4);
var arr1=[1,2,3];
alert(arr1.push('www'))//返回数组长度
arr1.unshift(0)//往前添加
alert(arr.unshift(2));//IE6 7不支持unshift返回值

arr.pop

alert(arr.pop);//返回被删除的元素
arr.shift()//从前删数组

应用

arr.unshift(arr.pop())//数组往右移
arr.push(arr.shift())//数组往左移

splice//有删除、替换、添加功能

arr.splice(0)//删除
arr.splice(0,2)//从第几位开始,删除几个
arr.splice(0,1,‘替换的值’)//替换一个
arr.splice(0,2,‘替换的值’)//替换两个
arr.splice(1,0,‘添加的值’)//在第0个和第1位置添加
alert(arr.splice(0,1,'www'))//返回删除的内容
应用:数组去重

sort()//按字符串规则编码排序

arr.sort(function(a,b){
return a-b;//在arr随机取两个数,比较交换,从小到大排序
})

随机排序
<script>
var attr=[3,4,2,55,77,34,25];
attr.sort(function(a,b){
    return Math.random()-0.5;
    })
alert(attr);
</script>
随机函数

Math.round():四舍五入
alert(Math.round(Math.random()))//0或者1
alert(Matn.round(Math.random()10))//0-10
alert(Matn.round(Math.random()
5+5))//5-10
alert(Matn.round(Math.random()10+10))//10-20
alert(Matn.round(Math.random()
80+20))//20-100
alert(Matn.round(Math.random()(y-x)+x))//x-y
alert(Matn.ceil(Math.random()
x))//1-x

concat数组连接
var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=[7,8,9];
alert(arr1.concat(arr2,arr3));//三个数组拼起来,变成一个新的数组1,2,3,4,5,6,7,8,9
reverse//翻转
var str='abcdef'
alert(str.split('').reverse().join());//'fedcba'
随机产生100个从0-100之间不重复的整数
<script>
var att=[];
for(var i=0;i<100;i++)
{
    att.push(Math.round(Math.random()*100));
    for(var j=0;j<att.length-1;j++)
    {
            if(att[att.length-1]==att[j])
            {
                att.splice(j,1);
                j--;
                i--;
            }       
    }   
}
alert(att);
/*att.sort(function(a,b){
    return a-b;
    })
alert(att);*/
</script>
为数组编写该方法:indexOf('img/1.jpg')
<script>
var a=['zsw','abc','www'];
function indexof(a,b){
    for(var i=0;i<a.length;i++)
    {
        if(a[i]==b)
        {
            return i;
        }
    }
    return -1;
    }
alert(indexof(a,'w'));
alert(indexof(a,'zsw'));
</script>
练习

排序练习
随机图片滚动
自定义字体形状
消除表情小游戏
```

转载于:https://www.cnblogs.com/zswmv/p/7081329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值