javascript 数组[] {} array 操作详解

网页特效 数组[] {} array 操作详解

JS中没有除数字外的字符索引数组
    当然!可以这样做,当结果不是你所想的
如:
var p = new Array();

p[0] = '第一个值';

p[1] = '第二个值';

p['h'] = '可以访问这个值';

以上几乎可PHP一样,但是p.length = 2;
要想循环输出Array中的值,只能
for(var key  in p){

     

}

这样有个严重问题
Array中有个prototype属性,可以扩展Array对象的方法
如果这样
Array.prototype.next = function(){};

所有Array对象都会多一个索引值
next:function(){};
上面循环也会多打印一个你意想不到的值
那么,Array的规范是接近C语言中的array,

二、[ ]也就是new Array()
     它可以方便的创建多维数组

三、{ }是new Object()
    其实这个最接近PHP中的数组
可以说PHP中数组是集Hash Array于一体的

四、判断是否是array
   也许你会想到typeof
但是不管是以上谁创建的对象
应用typeof arr= ‘object’
应该这样判断
return  (arr.constructor==Array);

但是如果你之前应用
Array.prototype.constructor = function(){}


arr.constructor = function(){}

将不会再有true这个结果

mootools1.2dev的做法是

  Array.prototype.$family = 'array'

  return  (arr.$family=='array');

还是不可完全相信

五、arguments 不是数组
   arguments是当前执行的 function 对象返回一个arguments 对象。
function.arguments
function 参数是当前执行函数的名称,可以省略。
arguments包含一些附属属性arguments.callee、arguments.length
用两段代码描述它们

  function param(){

     var s='';

     for(var i=0,l=arguments.length;i<l;i++){

        s += 'param'+ i+' : '+ arguments[i] + 'n';

     }

     alert(s);

   }

   param(1,2,3);

function factorial(n){

  if (n <= 0)

  return 1;

  else

    return n * arguments.callee(n - 1)//等同于factorial(n-1)

}

alert(factorial(3));

看完上面你会想这不是数组嘛!不是

用for(var k in arguments)的方式遍历不出arguments[[0|1|2|...|n]
但有些地方需要数组这个特性,我必须把arguments转化为array
prototype.js的做法
var length = iterable.length, results = new Array(length);

  while (length--) results[length] = iterable[length];

  return results;

mootools的做法

return Array.prototype.slice.call(iterable);

时间: 2024-10-24 12:23:02

javascript 数组[] {} array 操作详解的相关文章

JavaScript数组和循环详解

          JavaScript数组和循环详解           这篇文章主要介绍了JavaScript数组和循环详解,本文讲解了循环遍历数组.按顺序存储和访问值.以相反的顺序存储和访问值.在数组中搜索等内容,需要的朋友可以参考下               数组是元素的一个有序组合.在JavaScript中,数组可以使用正式的对象表示法来创建,或者可以使用直接量表示法来初始化.   代码如下: var arrObject = new Array("val1", "

javaScript数组迭代方法详解_javascript技巧

本文为大家介绍了javaScript数组迭代方法,供大家参考,具体内容如下 每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组中的位置,数组对象本身. forEach()  对数组中的每一项运行 给定函数.该方法没有返回值.every()  对数组中的每一项运行 给定函数,如果数组的每一项都返回true,则返回true.some()  对数组中的每一项运行 给定函数,如果数组的任意一项返回true

JavaScript数组和循环详解_javascript技巧

数组是元素的一个有序组合.在JavaScript中,数组可以使用正式的对象表示法来创建,或者可以使用直接量表示法来初始化. 复制代码 代码如下: var arrObject = new Array("val1", "val2"); // 作为对象的数组 var arrLiteral = ["val1", "val2"]; // 数组直接量 对于开发者来说,这没有区别:在直接量和对象上都可以调用一个Array方法.对于JavaS

js数组的操作详解_javascript技巧

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

php遍历数组高级操作详解

学习程式语言时, 总是学学 for, 然后再试著用 while 写出 for 的效果 等等的一些练习. 来看看没有 foreach 前, 要想要有 foreach 的功能要怎?写(用 while.list.each 来达成). 在这篇文章看到: PHP的foreach前身写法   代码如下 复制代码 //旧的写法 reset($attributes); while (list($key, $value) = each($attributes)) {     //do something } //

javascript中文件操作详解

一.功能实现核心:FileSystemObject 对象 其实,要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象. 二.FileSystemObject编程三部曲 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象.应用相关方法.访问对象相关属性 . (一)创建FileSystemObject对象 创建FileSystemObject对象的代码只要1行:  代码如下 复制代码 va

javascript中HTMLDOM操作详解_javascript技巧

 一.定义:htmlDOM是一种面向对象的树的模型,它包含html中的所有元素:通过html可以找到所有包含在dom中的元素. 二.作用: 1.查找html元素 1)通过id查找元素(document.getElementById();) <div id="d" ></div> var x=document.getElementById("d"); 2)通过标签名查找元素  <div id="m"></d

javascript 数组操作详解_javascript技巧

1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值     要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储

Javascript数组Array的常用操作

文章简介:JavaScript中的数组. Array是JavaScript中常用的类型,并且JavaScript中的数组和其他语言的数组有比较大的区别.JavaScript中数组中存放的数据类型不一定相同,而且数组的长度也是可改变的. 下面记录一下Array的常用操作: 一 新建数组 新建数组可以用一下方法: var obj = ['zdy',22,'湖北武汉','计算机科学与技术'];//创建一个数组变量 var obj1 = new Array('zdy',22,'湖北武汉','计算机科学与