您的位置:首页 > Web前端 > JavaScript

第13课 json、数组、sort排序、concat、reverse

2016-11-08 17:59 288 查看
1-json数据格式及json语法

1)json的概念

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

JSON 是轻量级的文本数据交换格式

JSON 独立于语言

2)json的数据格式

<span style="font-size:14px;">var json = { name :'leo', age : 32 };
var imgData = {
url : [ 'img/1.png', 'img/2.png','img/3.png', 'img/4.png' ],
text : [ '小宠物','图片二', '图片三', '面具' ]
};</span>
3)获取json对象的值的方法

a)Json.name

b)json[‘name’]

2-for-in遍历json

<span style="font-size:14px;">varjson4 = { 'name' : 'miaov', 'age' : 3, 'fun' : '前端开发' };
for( var attr in json4 ) {
// alert( attr );
// alert( json4[attr] );
}
varjson5 = {
'url' : [ 'img/1.png', 'img/2.png','img/3.png', 'img/4.png' ],
'text' : [ '小宠物', '图片二','图片三', '面具' ]
};
for( var attr in json5 ) {
for ( var i=0; i < json5[attr].length; i++) {
alert( json5[attr][i] );
}
}</span>
For-in遍历对象的属性

<span style="font-size:14px;">varstr = '';
varnum = 0;
for( var attr in document ) {
str += num + '. ' + attr + ':'+document[attr] + '<br />';
num ++;
}
document.body.innerHTML= str;
3-数组定义及清空数组效率问题
1) 数组定义
var arr=[1,2,3];
var arr=newArray(1,2,3);
vararr = new Array('3');
alert(arr.length );// 1
vararr = new Array(3);
alert(arr.length );// 3</span>

2)数组清空

<span style="font-size:14px;">vararr = [ 'aaa',2,3 ];
arr.length= 0;
arr= [];</span>
4-数组4个小宝贝方法与技巧

1) push方法

将新元素添加到一个数组中,并返回数组的新长度值。

<span style="font-size:14px;">vararr = [ 1,2,3 ];
alert(arr.push( 'abc' ) );</span>
2)unshift方法

将指定的元素插入数组开始位置并返回该数组。

<span style="font-size:14px;">alert( arr.unshift( 0) ); //IE 6 7 不支持 unshift 返回值</span>
3)pop方法

移除数组中的最后一个元素并返回该元素。

<span style="font-size:14px;">var arr = [ 'TM', '钟毅', '张森', '杜鹏', 'Leo' ];
alert(arr.pop());//LEO</span>
4)shift方法

移除数组中的第一个元素并返回该元素。

lert(arr.shift());//TM

5-splice方法、数组去重

1) splice方法

从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

arrayObj.splice(start,deleteCount, [item1[, item2[, . . . [,itemN]]]])

splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。

2) 数组去重

<span style="font-size:14px;">var arr = [ 1,2,2,4,2 ];
for ( var i=0; i<arr.length; i++ ) {
for ( var j=i+1; j<arr.length; j++ ) {
if ( arr[i] == arr[j] ) {
arr.splice(j, 1 );
j--;
}
}
}</span>
6-JS基础-sort排序-6

1)按照字符的编码值进行排序

<span style="font-size:14px;">var arr = [ 'c', 'd','a', 'e' ];
arr.sort();
alert(arr);//a,c,d,e</span>

2)sort方法会默认将数字转换成字符串形式进行排序

<span style="font-size:14px;">var arr2 = [4,3,5,5,76,2,0,8 ];
arr2.sort();
alert( arr2 );
解决办法:
arr2.sort(function (a, b ) {
return a - b;
});</span>

3)带px像素的字符串进行比较

<span style="font-size:14px;">var arrWidth = [ '345px','23px', '10px', '1000px' ];
arrWidth.sort(function( a, b ) {
return parseInt(a) - parseInt(b);
});</span>

7-随机数及随机公式推理过程

1) 随机数

<span style="font-size:14px;">var arr = [1,2,3,4,5,6,7,8 ];
arr.sort(function ( a,b ) {
return Math.random() - 0.5;
});
alert( arr );
alert( Math.random());</span>

2) 随机函数

<span style="font-size:14px;">alert( Math.round(Math.random()*80 + 20 ));
var x = 3;
var y = 49;
alert( Math.round(Math.random()*(y-x) + x ));
// 0~x
alert( Math.round(Math.random()*x));
// 1~x
alert( Math.ceil(Math.random()*x));</span>
8-concat、reverse

1) Concat方法

返回一个新数组,这个新数组是由两个或更多数组组合而成的。

array1.concat([item1[,item2[, . . . [, itemN]]]])

concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。

要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。

以下为从源数组复制元素到结果数组:

对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。

对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。

<span style="font-size:14px;">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</span>

2)  reverse方法

返回一个元素顺序被反转的 Array 对象。

arrayObj.reverse( )

必选项 arrayObj 参数为 Array 对象。

reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。

如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

<span style="font-size:14px;">var str = 'abcdef';
alert(str.split('').reverse().join(''));</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息