数组:相同类型数据的集合
强类型语言:1数组里面只能存放相同数据类型的数据
     2定义数组的时候需要制定一个长度(可以存放的元素数量)
     3内存空间连续
集合:1.可以存放任意类型的数据
      2.定义的时候不需要指定长度
      3.内存空间不连续
     
JS:
  数组:1可以存放任意类型数据
        2定义时候不需要指定长度
        var attr=Array();给数据
    给长度
        【】             使用方括号定义
        length           数组长度
        push             往数组里面追加元素
数组遍历
for循环
foreach()方式遍历
     for(var a in attr)
       {  alert(attr[a]);
        }

<script type="text/javascript">

//var attr = Array(1,3.14,"aa");

/*var attr = [1,3.14,"aa"];
attr[3] = "bb";
attr[4] = "cc";
attr.push("dd");*/

//alert(attr.length);

//数组遍历

/*for(var i=0;i<attr.length;i++)
{
 alert(attr[i]);
}*/

//foreach()方式遍历

/*foreach(int a in list)
{
 a;
}*/

/*for(var a in attr)
{
 alert(attr[a]);
}*/

//例子
//10个分数,求总分,最高分,最低分
//var attr =[89,80,76,49,90,25,85,76,59,40];

/*var sum = 0;
for(var i=0;i<attr.length;i++)
{
 sum += attr[i];
}

alert(sum);*/

/*var zg = 0;

for(var i=0;i<attr.length;i++)
{
 if(attr[i]>zg)
 {
  zg = attr[i];
 }
 
}*/
//alert(zg);

/*var zd = zg;
for(var i=0;i<attr.length;i++)
{
 if(attr[i]<zd)
 {
  zd = attr[i];
 }
}
alert(zd);*/

//添加去重
var attr = [2,5,10,16,27];

var sj = 27;
var cf = true;

for(var i=0; i<attr.length;i++)
{
 if(sj == attr[i])
 {
  cf = false;
  break;
 }
}

if(cf)
{
 attr.push(sj);
 alert(attr.length);
}
else
{
 alert("有重复值");
}

//var attr = [1,8,26,4,15,3,7,42,9];

//对数组元素进行排序
//冒泡排序
/*8 6 4 5 3 7 2 9 1   8
8 6 5 4 7 3 9 2 1     7
8 6 5 7 4 9 3 2 1     6
8 6 7 5 9 4 3 2 1     5
8 7 6 9 5 4 3 2 1     4
8 7 9 6 5 4 3 2 1     3
8 9 7 6 5 4 3 2 1     2
9 8 7 6 5 4 3 2 1     1  */

//两个相邻的元素进行比较,满足条件元素互换
//进行比较的轮数是数组的长度减一

//定义一个交换使用的中间变量
//var zj = 0;

//控制比较的轮数
/*for(var i=0;i<attr.length-1;i++)
{
 //控制每轮比较的次数
 for(var j=0;j<attr.length-1-i;j++)
 {
  //如果下一个元素大于当前元素
  if(attr[j]<attr[j+1])
  {
   //互换
   zj = attr[j];
   attr[j] = attr[j+1];
   attr[j+1] = zj;
   
  }
 }
}*/

//alert(attr[0]);

//attr.sort();

//alert(attr[3]);

//在数组里面查找数据
var attr = [1,2,3,4,5,6,7,8,9];

//要查找的值
var v = 0;

//循环遍历的方式
/*var sy = -1;
for(var i=0;i<attr.length;i++)
{
 if(attr[i]==v)
 {
  sy = i;
 }
}

if(sy == -1)
{
 alert("没找到数据");
}
else
{
 alert("该数据在数组里面的索引为:"+sy);
}*/

//二分法查找数据

//最小索引
var minsy = 0;
var maxsy = attr.length-1;
var midsy ;

//循环比较
while(true)
{
 //计算中间索引
 midsy = parseInt((minsy+maxsy)/2);
 
 //比较中间值和用户的值
 //判断中间索引的值是否等于用户要查找的值
 if(attr[midsy] == v)
 {
  //如果等于,就退出循环,找到了数据
  break;
 }
 
 //判断是否只剩下两个数据
 if(midsy == minsy)
 {
  //判断两个数据中的另外一个是否等于用户查找的值
  if(attr[midsy+1]==v)
  {
   //找到了值,退出循环
   midsy = midsy+1;
   break;
  }
  else
  {
   //没有找到值,退出循环
   midsy = -1;
   break;
  }
 }
 //用来改范围
 if(attr[midsy]>v)
 {
  maxsy = midsy;
 }
 else
 {
  minsy = midsy;
 }
}

alert(midsy);

9.19 JS数组的更多相关文章

  1. js 数组api

    Javascript Array API   JS数组对象提供了很多API方法,要用到的朋友可以查阅哈,如有错误欢迎指正. /** * Created by Administrator on 2017 ...

  2. js数组方法详解

    Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...

  3. 深入理解Js数组

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

  4. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

  5. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  6. 转→js数组遍历 千万不要使用for...in...

    看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...

  7. js数组操作大全

    原文(http://www.cnblogs.com/webhotel/archive/2010/12/21/1912732.html) 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简 ...

  8. js数组去重的4种方法

    js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...

  9. js 数组处理函数

    本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...

随机推荐

  1. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

  2. 【CSS3】 线性渐变

    参考地址:http://www.w3cplus.com/css3/new-css3-linear-gradient.html background-image: linear-gradient(to ...

  3. 【Python】[函数] 调用与定义

    1.数据类型转换 int(),float(),str(),bool('1')2.定义函数使用 def关键字,依次写出 函数名.括号.括号中的参数.冒号,然后在缩进体中写函数内容 例子 求绝对值的函数 ...

  4. ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案

    摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置 ...

  5. 如何配置全世界最小的 MySQL 服务器

    配置全世界最小的 MySQL 服务器——如何在一块 Intel Edison 为控制板上安装一个 MySQL 服务器. 介绍 在我最近的一篇博文中,物联网,消息以及 MySQL,我展示了如果 Part ...

  6. flex布局知识点

    flexBox 布局最合适小规模布局,而网格布局适合较大规模布局. float,clear,vertical-align  在flex中不起作用. flex布局中,有两类作用于父节点也子节点的样式,大 ...

  7. lucene-一篇分词器介绍很好理解的文章

    本文来自这里在前面的概念介绍中我们已经知道了分析器的作用,就是把句子按照语义切分成一个个词语.英文切分已经有了很成熟的分析器: StandardAnalyzer,很多情况下StandardAnalyz ...

  8. js-比较两个日期的大小

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  9. Bean 的作用域

    •在 Spring 中, 可以在 <bean> 元素的 scope 属性里设置 Bean 的作用域. 默认情况下, Spring 只为每个在 IOC 容器里声明的 Bean 创建唯一一个实 ...

  10. 关于context你必须知道的一切

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 本文大多数内容翻译自:http://w ...