第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>
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>
相关文章推荐
- js数组排序 reverse()和sort()方法的使用 复制数组slice()和克隆数组concat()
- Javascript数组的排序 sort()方法和reverse()方法
- JS数组排序函数sort()、reverse()
- javascript 数组排序函数sort和reverse使用介绍
- javascript数组(array)的常用方法(shift/unshift/pop/push/concat/splice/reverse/sort/slice/join)
- JavaScript数组排序reverse()和sort()方法详解
- javascript 数组排序函数sort和reverse使用介绍
- Javascript数组的排序 sort()方法和reverse()方法
- js运用sort对json 数组进行排序
- Javascript数组的排序 sort()方法和reverse()方法
- 深入探讨JS中的数组排序函数sort()和reverse()
- 深入探讨JS中的数组排序函数sort()和reverse()
- js中数组反向、排序reverse、sort
- js数组排序 reverse()和sort()方法的使用,
- sort() 排序不影响原数组,data.concat([])
- javascript 数组排序函数sort和reverse
- Javascript数组的排序:sort()方法和reverse()方法
- js高级程序设计(第三版)总结--数组重排序方法 reverse() 和 sort()的用法
- Javascript数组的排序 sort()方法和reverse()方法
- JS中的数组排序函数sort()和reverse()