JS(二)
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>
练习
排序练习
随机图片滚动
自定义字体形状
消除表情小游戏