先看JS循环作业题:

一.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

<script type="text/javascript">
var a=0.0001;
var i=0;
while(a<=8848){
a=a*2;
i++;
}
alert(i); </script>

这个题主要考察的点:1.当要求得到什么效果或者多少次结束时,我们可以考虑运动while语句是比较方便的;

2.对折一次厚度要*2,所以下次折叠后,厚度为上一次的2倍

二.公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性?

通过分析我们可以得到   公鸡最多买49只,母鸡最多97只,小鸡最多194只

<script type="text/javascript">
var i=0;
for(var a=1;a<=49;a++){
for(var b=1;b<=97;b++){
for(var c=1;c<=194;c++){
if((a+b+c==100)&&(a*2+b*1+c*0.5==100)){
i++; }
}
}
}
alert(i);
</script>

分析:1.这个题逻辑考察的是for循环,for循环四要素:初始值-- 循环条件--- 状态改变--- 循环体

2.此外这个题目还考察了逻辑运算符(并:&&)  我们学习的三个逻辑运算符为[并:&&]    [或:||]   [非:!]

三.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问6个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少?

经分析我们得到:

第0个月:幼兔 1 小兔 0 成兔 0
第1个月:幼兔 0 小兔 1 成兔 0
第2个月:幼兔 1 小兔 0 成兔 1
第3个月:幼兔 1 小兔 1 成兔 1
第4个月:幼兔 2 小兔 1 成兔 2
第5个月:幼兔 3 小兔 2 成兔 3
第6个月:幼兔 5 小兔 3 成兔 5

当前月份幼兔(y) = 上个月的成兔(sc)+上月小兔(sx)
当前月份小兔(x) = 上月幼兔(sy)
当前月份成兔(c) = 上月成兔(sc)+上月小兔(sx)

所以:

<script type="text/javascript">
var y=1;
var x=0;
var c=0;
var sy=0;
var sx=0;
var sc=0;
for(i=1;i<=6;i++){
sy=y;
sx=x;
sc=c;
y=sc+sx;
x=sy;
c=sc+sx;
}
alert(y+","+x+","+c);
alert(i);
</script>

这个题我是有点晕乎的,听到解析后思路瞬间打开了,以后还得注重问题的分析以及语言的逻辑性

JS数组(数据结构)

一.数组的定义方式

方式1:

<script type="text/javascript">
var arr = new Array();-----这一步之后,变量arr变为数组
arr[0]=1;---------------arr[]里面为索引,索引值从0开始
arr[1]=2;
arr[2]=3; alert(arr[0]);
</script>

方式2:

<script type="text/javascript">
var arr = new Array(1,2,3,4,5);
alert(arr[1]);
</script>

方式3:

<script type="text/javascript">
var arr = new Array();
arr.push(1);
arr.push(2);
alert(arr[0]);
</script>

方式4:

<script type="text/javascript">
var arr = [1,2,3,4,5];
alert(arr[2]);
</script>

一般我们只需要掌握方式1和2就好了

特别注意:var arr =new Array();   /*这一步之后,变量arr变为数组*/

arr[a]=...;

1.a的值是索引,所以的值从0开始
2.数组的索引叫做(key),数组里面存的值叫做(value).
3.key和value是成对存在的,叫做(键值对)

二.强类型语言三个特点(弱类型语言“JS”可以不遵循,灵活性高):

1.数组存储必须是连续的;

2.数组必须规定长度;

3.必须要规定存储的类型

三.数组长度

1.强类型语言:var arr =new Array(5);    /*表示数组长度是5,了解内容*/

2.弱类型语言可以存储任何类型的数据(既能存整数,又能存字符串,还能存别的数据)

<script type="text/javascript">
var arr = new Array();
arr[0]=1;
arr[1]=2;
arr[2]="hello";
alert(arr[2]); </script>

3.数组长度  length

<script type="text/javascript">
var arr = [1,2,3,4,5,6];
alert(arr.length);
</script>

4.其他

arr.length;     代表属性
arr.push();    代表方法

四.二维数组(相当于excel表格中的第几行第几列代表的数据,映射成一个表格)

<script type="text/javascript">
var arr = new Array(
new Array(11,12,13,14,15),
new Array(21,22,23,24,25),
new Array(31,32,33,34,35)
); alert(arr[0][4]);
</script>

五.遍历数组

1.for循环

<script type="text/javascript">
var arr = new Array(62,31,11,7,18,20,11);
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
</script>

注意:1.共跳转7次,在这里我们需要循环条件为   i<arr.length

2.for循环是匹配数组的

3.在数组中必须保证arr(var  i=0;)开始

2.foreach循环(在强类型语言中运用,在JS语言中没有foreach)

在JS用法

<script type="text/javascript">
var arr = new Array(62,31,11,7,18,20,11);
for(var a in arr){
alert(arr[a]);
}
</script>

这样运用foreash循环结果和上面for循环结果是一致的

JS数组+JS循环题的更多相关文章

  1. JS: 数组的循环函数

    JS 数组相关的循环函数,用得挺多,所以有些坑还是要去踩一下,先来看一道面试题. 注意:下面提到的不改变原数组仅针对基本数据类型. 面试题 模拟实现数组的 map 函数. 心中有答案了吗?我的答案放在 ...

  2. js数组试列题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. C#数组、js数组、json

    C#数组 参考地址C#之数组 什么是数组?数组是一种数据结构,包含同一个类型的多个元素.数组的声明:int[] myIntArray; 注:声明数组时,方括号 [] 必须跟在类型后面,而不是变量名后面 ...

  4. 2017年9月22日 关于JS数组

    JS数组 JS数组的定义方法 var arr = []; var arr = new Array() JS数组属性 长度 arr.length 遍历数组 索引值:从0开始数 第一种方法 for(var ...

  5. json、js数组真心不是想得那么简单

    之前因为做前台的东西比較少,对于json和js数组的认识仅局限于一种固定格式.这样的固定的思维在开发前台时,特别是近期使用highcharts插件时.让我感到特别不明确.通过查询最终心头的疙瘩解开了. ...

  6. 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作

    页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...

  7. js中数组的循环与遍历forEach,map

    对于前端的循环遍历我们知道有 针对js数组的forEach().map().filter().reduce()方法 针对js对象的for/in语句(for/in也能遍历数组,但不推荐) 针对jq数组/ ...

  8. JS基础与循环

    JS 简介 [JS的三种方式] 1.HTML标签中内嵌JS <button onclick="javascript:alert('白痴')">呵呵呵</butto ...

  9. 深入理解Js数组

    深入理解Js数组 在Js中数组存在两种形式,一种是与C/C++等相同的在连续内存中存放数据的快数组,另一种是HashTable结构的慢数组,是一种典型的字典形式. 描述 在本文中所有的测试都是基于V8 ...

随机推荐

  1. Codeforces Round #410 (Div. 2)D题

    D. Mike and distribution time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  2. TypeScript入门-高级类型

    高级类型 交叉类型 交叉类型,就是将多个类型合并为一个新的类型,这个新的类型具有这多个类型的成员,含有这几个类型的所有特性,是他们的综合体,像是集合的并集 例子: function extend< ...

  3. 最大流算法之Dinic

    引言: 在最大流(一)中我们讨论了关于EK算法的原理与代码实现,此文将讨论与EK算法同级别复杂度(O(N^2M))的算法--Dinic算法. Dinic算法用到的思想是图的分层结构,通过BFS将每一个 ...

  4. Linux 01 Liunx目录结构及文件基本操作

    Linux目录结构及文件基本操作 1.Linux的文件组织目录结构(遵循FHS标准) FHS(Filesystem Hierarchy Standard)标准:多数Linux版本采用这种文件组织形式, ...

  5. Linux系统管理10——进程和计划任务管理

    Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代 ...

  6. NancyFx 2.0的开源框架的使用-Authentication

    新建一个空的项目 新建好了空的项目以后,接着通过NuGet安装一下三个包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Razor 然后在项目中添加Mod ...

  7. hdu 1978 How many ways 记忆化搜索+DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 思路很好想: 定义f[i][j]表示从点(i,j)出发到达(n,m)的方法数: 那么对于一切从( ...

  8. [笔记]机器学习(Machine Learning) - 02.逻辑回归(Logistic Regression)

    逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪 ...

  9. 常用oralce_sql

    1.解锁账户: 默认的scott用户是被锁定的,先解锁就能登陆上了. 使用下面的语句解锁scott: alter user scott account unlock; 解锁之后可能会要求你该密码: a ...

  10. VMTools安装

    先启动CentOS并成功登陆如下图,发现底部提示,准备安装 2.选择虚拟机菜单栏--安装VMware tools 3.光驱目录中拷贝VMwareTools-10.0.5-3228253.tar.gz到 ...