妙味课堂:JavaScript初级--第12课:json与数组

1、json数据格式及json语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>

    var arr1 = [ 1,2,3 ];
    var arr2 = [ 4,5,6 ];
    var arr3 = [ 7,8,9 ];

    alert( arr1.concat( arr2, arr3 ) );
    var arr1 = [ 1,2,3,4,5,6 ];

    // arr1.reverse();
    //可以运用这个反转字符串。先字符串转换为数组,翻转后,在变成字符串
    var str = ‘abcdef‘;
    // alert(str.split(‘‘).reverse().join(‘‘));

    // 课上小练习:
    // 随机产生 100 个从 0 ~ 1000 之间不重复的整数
    // var str = ‘aaasdlfjhasdlkfs‘;
    // indexOf(‘s‘) —— 为数组编写该方法:indexOf(‘img/1.jpg‘)

</body>
</html>

2、for-in遍历json

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <script>
 9         var json4 = { ‘name‘ : ‘miaov‘, ‘age‘ : 3, ‘fun‘ : ‘前端开发‘  };
10
11         for ( var attr in json4 ) {
12 //            alert(attr) //找到键名
13              alert( json4[attr] );//找到值 attr加‘‘就代表访问json里attr属性的值,不加引号就是遍历,找子集
14         }
15
16
17         //for in 里可以嵌套for循环
18         var json5 = {
19             ‘url‘ : [ ‘img/1.png‘, ‘img/2.png‘, ‘img/3.png‘, ‘img/4.png‘ ],
20             ‘text‘ : [ ‘小宠物‘, ‘图片二‘, ‘图片三‘, ‘面具‘ ]
21         };
22         for ( var attr in json5 ) {
23             for ( var i=0; i < json5[attr].length; i++ ) {
24                 alert( json5[attr][i] );
25             }
26         }
27     </script>
28 </body>
29 </html>

3、for-in遍历对象属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    var str = ‘‘;
    var num = 0;
    for ( var attr in document ) {
        str += num + ‘. ‘ + attr + ‘:‘ +document[attr] + ‘<br />‘;
        num ++;
    }
    document.body.innerHTML = str;
</script>

</body>
</html>

4、关于for循环和for-in的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    var json = {
        ‘url‘ : [ ‘img/1.png‘, ‘img/2.png‘, ‘img/3.png‘, ‘img/4.png‘ ],
        ‘text‘ : [ ‘小宠物‘, ‘图片二‘, ‘图片三‘, ‘面具‘ ]
    };

    alert(json.length) //undefined json没有长度属性 不能使用for循环

    var arr = [ ‘a‘, ‘b‘, ‘c‘ ];
    //数字可以使用for循环也可以使用for in
    for ( var i in arr ) {
        alert( arr[i] );
    }

</script>

</body>
</html>

5、数组的定义及清空数组效率问题

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <script>
 9     var arr = [ 1,2,3 ];
10     var arr = new Array(1,2,3); //数组的对象定义
11     alert( arr );
12
13     // var arr = new Array(3); //解析成长度为3
14     // var arr = new Array(‘3‘);
15     // alert( arr.length );     //解析成长度为1
16
17     //数组的长度可以读 也可以写
18     var arr = [ ‘aaa‘,2,3 ];
19     // alert( arr.length );            // 3
20     // arr.length = 0;   //清空了数组
21     // arr = [];         //效率高点
22
23     //字符串长度是不能写的
24     var str = ‘aaaaa‘;
25 //     str.length = 1;
26     alert(str.length);
27
28
29 </script>
30 </body>
31 </html>

6、数组方法与技巧

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <script>
 9         //1数组的添加
10         var arr = [ 1,2,3 ];
11         // alert( arr.push( ‘abc‘ ) );    //往数组的最后一位添加 返回值是数组新的长度
12         //往数组前面添加
13         arr.unshift( 0 )
14 //        alert( arr.unshift( 0 ) ); //返回值也是数组新的长度4 IE 6  7 不支持 unshift 返回值
15
16         //2数组的删除
17         var arr = [ ‘TM‘, ‘钟毅‘, ‘张森‘, ‘杜鹏‘, ‘Leo‘ ];
18 //      alert( arr.pop() );         //删除最后一个
19 //      alert( arr );
20         alert( arr.shift() );          //删除最前面的一个
21         // arr.shift();
22         alert( arr );
23
24         //3数组排队走
25         // arr.unshift(arr.pop());  //把最后一个扔到开头
26         // arr.unshift(arr.pop());
27
28         arr.push(arr.shift())      //把最前面的扔到后面
29
30         // alert( arr );
31
32         //4、数组的删除、替换、添加
33
34         arr.splice( 0, 2) //从第0位开始删除2个 返回值是删除的两个值
35         arr.splice( 0, 1,‘mm‘) //mm替换了第一个 返回值是被替换的值
36         arr.splice( 1, 0, ‘钟毅媳妇儿~‘, ‘钟毅媳妇们~‘ ) //往第一个位置塞
37
38         //5、数组去重
39         var arr = [ 1,2,2,4,2 ];
40
41         for ( var i=0; i<arr.length; i++ ) {
42             for ( var j=i+1; j<arr.length; j++ ) {
43                 if ( arr[i] == arr[j] ) { //第一个与第二个比较,相等就干掉一个
44                     arr.splice( j, 1 );
45                     j--;
46                 }
47             }
48         }
49         alert( arr );
50         //6、数组排序
51         var arr = [ ‘c‘, ‘d‘, ‘a‘, ‘e‘ ];
52         arr.sort(); //按照字符的编码排序
53         var arr2 = [ 4,3,5,5,76,2,0,8 ];
54         arr2.sort();//先按字符串的方式比较‘76‘与8比较,7<8 需设置个函数
55         arr2.sort(function ( a, b ) {
56             return a - b; //由小到大排序 如果是整数就换下位置
57         });
58         // alert( arr2 );
59
60         //字符串式比较
61         var arrWidth = [ ‘345px‘, ‘23px‘, ‘10px‘, ‘1000px‘ ];
62         arrWidth.sort(function ( a, b ) {
63             return parseInt(a) - parseInt(b);
64         });
65         alert( arrWidth );
66         //7、数组随机排序
67         var arr = [ 1,2,3,4,5,6,7,8 ];
68         arr.sort(function ( a, b ) {
69             return Math.random() - 0.5;//正值交换负值
70         });
71         alert( arr );
72
73         // alert( Math.random() );//返回0-1之间的数字
74
75     </script>
76 </body>
77 </html>

7、随机函数

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8
 9 <script>
10     // alert( Math.round(3.4) );             //四舍五入
11     // 0~1 : Math.round(Math.random());     //0 1随机
12
13     // alert( Math.round(Math.random()*10) ); //0-10之间随机数
14
15
16     // alert( Math.round( Math.random()*5 + 5 ) );  // 5~10之间随机数
17
18
19     // alert( Math.round( Math.random()*10 + 10 ) ); // 10~20之间随机数
20
21
22     // alert( Math.round( Math.random()*80 + 20 ) ); // 20~100之间随机数
23
24     // x ~ y
25     var x = 3;
26     var y = 49;
27     // alert( Math.round( Math.random()*(y-x) + x ) ); //可以返回x-y之间的随机数
28
29     // alert( Math.round( Math.random()*x) ); //0~x之间的随机数
30
31     alert( Math.ceil( Math.random()*x) ); //1~x之间的随机数
32
33
34
35
36 </script>
37
38
39 </body>
40 </html>

8、链接数组contact与反转数组reverse

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <script>
 9
10     var arr1 = [ 1,2,3 ];
11     var arr2 = [ 4,5,6 ];
12     var arr3 = [ 7,8,9 ];
13
14     alert( arr1.concat( arr2, arr3 ) );
15     var arr1 = [ 1,2,3,4,5,6 ];
16
17     // arr1.reverse();
18     //可以运用这个反转字符串。先字符串转换为数组,翻转后,在变成字符串
19     var str = ‘abcdef‘;
20     // alert(str.split(‘‘).reverse().join(‘‘));
21
22
23
24     // 课上小练习:
25     // 随机产生 100 个从 0 ~ 1000 之间不重复的整数
26     // var str = ‘aaasdlfjhasdlkfs‘;
27     // indexOf(‘s‘) —— 为数组编写该方法:indexOf(‘img/1.jpg‘)
28
29 </body>
30 </html>
时间: 2024-12-11 17:56:02

妙味课堂:JavaScript初级--第12课:json与数组的相关文章

妙味课堂——JavaScript基础课程笔记

集中时间把秒微课堂JS的基础课程看完,并且认真完成了课后练习.感觉在JS方面的技能算是入了个门了.课后练习的作业完成的代码我都汇总在了这里.至于视频课的学习笔记,则记录如下. 第01课JS入门基础_热身课程 写JS的步骤 先实现布局 想出实现原理 了解JS语法 希望把某个元素移除的实现 display: none; 显示为无 visibility: hidden; 隐藏 width \ height 透明度 left \ top 拿与背景色相同的div盖住该元素 利用margin值 …… 获取元

妙味课堂——HTML+CSS(第三课)

常见标签我已经在上一篇文章中提及,我们做前端设计时,主要也是用这些标签(最常用的). 然而有一个问题,就是有的标签都有自己的默认样式.试通过如下代码来说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <a

妙味课堂--vue第2节课(指令和模板)

妙味课堂基础篇0_3

1.日历 1 JAN 2 FER 3 MAR 4 APR 5 MAY 6 JUN 7 JUL 8 AUG 9 SEP 10 OCT 11 NOV 12 DEC 1月活动 快过年了,大家可以商量着去哪玩吧- <!DOCTYPE html PUBLIC "-//W3C//h2D XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/h2D/xhtml1-transitional.h2d"> <

【学+原】CSS3的2D动画 ——仿NOMOS手表—— 妙味课堂

看CSS3妙味课堂中有一课是介绍如何做钟表界面,然后三根针都能随着时间转动,然后自己在那个简易的版本上做了一些进一部改进. 最关键的知识点应该是transform-origin这个样式,要选对旋转的中心点.分针秒针时针的旋转中心点应该是针的底部中间位置 这个实例还是让我第一次见到把<style>设置了id,然后写进js里去操作的,因为表面的各种小时,秒的刻度的制作,需要用循环来写,直接写css样式里是不现实的. 另外就是要把setInterval和transform:rotate结合起来使用,

妙味课堂——HTML+CSS基础笔记

妙味课堂的课程讲得非常的清楚,受益匪浅.先把HTML和CSS基础课程部分视频的学习笔记记录如下: padding #PS基础 ##前端需要的PS技能 - PS技能(前端需要):切图.修图.测量 - PS工具: - 移动工具 - 矩形选框工具 - 裁切工具 - 吸管工具 - 横排文字工具 - 手抓(快捷键:空格) - 缩放(快捷键:Ctrl + 和 Ctrl -) - 标尺(快捷键:Ctrl R,主要是拖出参考线.矩形区域选择的时候,按住Ctrl,就能贴合参考线) - 自由变换(快捷键 Ctrl

妙味课堂Jquery从入门到插件开发到模拟视频教程 Jquery实战开发 Jquery UI

<jQuery课程 初级到高级到模拟>├<第一课:jQuery初级>│  ├01 妙味云课堂-jQuery简介.mp4│  ├02 妙味云课堂-jQuery设计思想之选择元素.mp4│  ├03 妙味云课堂-jQuery设计思想之写法.mp4│  ├04 妙味云课堂-jQuery设计思想之原生关系和链式操作.mp4│  ├05 妙味云课堂-jQuery设计思想之取值和赋值.mp4│  ├06 妙味云课堂-jQuery方法之filter not has.mp4│  ├07 妙味云课堂

妙味课堂的导航效果

首页 首页 前端开发教程 前端开发教程 妙味视频教程 妙味视频教程 周末班上课安排 周末班上课安排 结课标准 结课标准 联系妙味 联系妙味 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> body,ul{margin: 0;padding: 0;} li{li

【学】CSS3的3D动画 ——3D旋转(1)—— 妙味课堂

最近学了妙味的css3的动画,2D,3D的都有,先写一个最简单的3d翻转效果,鼠标移入div,正反面翻转效果. 注意点有: 要给正反面外面加个父级: transform-style: preserve-3d;是加在正反面的父级,使动画具有3d的效果:但是ie11并不支持preserve-3d perspective也要加在父级上,使动画具有透视效果: 要给父级也加上宽高,否则动画没有效果 <style> #box{ margin: 70px auto; width: 300px; height