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);

时间: 2024-11-02 00:46:09

9.19 JS数组的相关文章

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

JS数组(Array)操作汇总

1.去掉重复的数组元素.2.获取一个数组中的重复项.3.求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节.4.判断一个字符串中出现次数最多的字符,统计这个次数.5.数组排序. 6.快排. 7.删除/添加数组项. 8.数组随机顺序输出. 9.数组求和.最大值. 10.判断是否为数组. 11.冒泡排序. 1.去掉重复的数组元素. Array.prototype.unique = function() { var ret = []; var o = {}; for(var i

js数组、字符串常用方法

Posted on 2016-01-08 23:19 _银弹 阅读(486) 评论(0) 编辑 收藏 常常在开发中,会使用到很多js数组和字符串的处理方法,这里列举一些常用到的一些,方便大家参考使用. 数组方面 push:向数组尾部增加内容,返回的是新数组的长度. var arr = [1,2,3]; console.log(arr); var b = arr.push(4); console.log(b); console.log(arr); // [1, 2, 3] // 4 //表示当前数

js数组和字符串去重复几种方法

js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i = 0, n = this.length; i < n; i++) { for(var x = 0, y = r.length; x < y; x++) { if(r[x] == this[i]) { continue label; } } r[r.length] = this[i]; } re

js数组知识

js数组 shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined Javascript代码 var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 unshift:将参数添加到原数组开头,并返回数组的长度 Javascript代码 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总

js数组的操作

转载 js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

js数组小结

1.js数组使用sort()排序 var a = ["1","12","3","4","0"]; document.write(a.sort(function(a,b){ //实现升序排序 return a - b; })); 2.js使用数组实现一些数据结构 栈        push() , pop() 队列 shift() ,  push() 反向队列    unshift() , pop() 其中

js 数组,字符串,JSON,bind, Name

/** * Created by W.J.Chang on 2014/5/23. */ // 判读是否是数组的方法 console.log(Array.isArray(new Array)); console.log(Array.isArray([])); var arr = [1,2,3]; // 遍历方法 arr.forEach(function (v){ console.log(v); }); console.log("---------------------"); // 过滤

python数组与js数组(list)对比

本文和大家分享的是python数组与js数组相关内容,一起来看看吧,希望对大家学习python有所帮助. 创建 基本相同 js var person = ['xiaohong','wangwei','liudehua']; python person=['xiaohong','wangwei','liudehua'] 访问元素 基本相同 js person[0] //xiaohong python >>> person[0]'xiaohong' 切片 这块不一样,js用slice函数,p