9.19 JS数组
数组:相同类型数据的集合
强类型语言: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数组的更多相关文章
- js 数组api
Javascript Array API JS数组对象提供了很多API方法,要用到的朋友可以查阅哈,如有错误欢迎指正. /** * Created by Administrator on 2017 ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- 深入理解Js数组
深入理解Js数组 在Js中数组存在两种形式,一种是与C/C++等相同的在连续内存中存放数据的快数组,另一种是HashTable结构的慢数组,是一种典型的字典形式. 描述 在本文中所有的测试都是基于V8 ...
- 小兔JS教程(四)-- 彻底攻略JS数组
在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- 转→js数组遍历 千万不要使用for...in...
看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...
- js数组操作大全
原文(http://www.cnblogs.com/webhotel/archive/2010/12/21/1912732.html) 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简 ...
- js数组去重的4种方法
js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...
- js 数组处理函数
本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...
随机推荐
- 从B 树、B+ 树、B* 树谈到R 树
从B 树.B+ 树.B* 树谈到R 树 作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由 ...
- JavaScript的理解记录(2)
一.表达式与运算符: 1.对于属性访问表达式: var arr = {first:"hh","second":"gg",third:null ...
- SEO站点优化学习总结
1.网站收录查询 在搜索引擎里面输入Site:域名 即可. 尾巴——学习SEO可以看看以下几个网站: 卢松松博客[一个草根的博客]:http://lusongsong.com/ 站长之家[里面有站长统 ...
- Windows10易升下载
为了更好的帮助用户快速跨版本升级windows,退出Windows易升!在线下载,更新安装!网速快的话需要半个小时搞定! 升级完毕,如股票感觉OK.记得清理C盘Windows.old文件 01.磁盘- ...
- jquery+bootstrap使用数字增减按钮
<div class="container"> <div class="page-header"><h1>Bootstrap ...
- 1011MySQL Query Cache学习笔记
转自:http://blog.chinaunix.net/uid-16844903-id-321156.html 测试环境 MySQL 5.5 innodb_version 1.1.6 MySQL Q ...
- Hibernated的sql查询
记录一下学习Hibernate的心得 1.为什么HIbernate会支持原生态的sql查询? HQL查询语句虽然方便我们查询,但是基于HQL的查询会将查询出来的对象保存到hibernate的缓存当中, ...
- mysql 索引2
/* 所有MySQL列类型可以被索引.根据存储引擎定义每个表的最大索引数和最大索引长度. 所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节.大多数存储引擎有更高的限制. 索引的存储类型 ...
- java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 错误
你的ArrayList 是一个没有值的对象(不是null),也就是里面什么对象也没有存(即:arrayList.size()==0).但是,你有取它下标为0值的操作.所以,数组越界了!!比如array ...
- mybatis中使用使用模块化sql
主要使用到mybatis中的标签 <sql id="tempId"> select * from student <sql> 使用的标签如下: <in ...