&#106avascript中的数组应用的一点发现

数组

    今天用javascript写一个小程序,用到数组时有一个小小发现,翻了手边的书都没有介绍,所以就发过来献丑了。

    首先我们先定义一个数组,并给它赋值,然后再定义一个空的数组,另空数组=原数组:

    /*****************代码段一*****************

    var array1 = new Array("a", "b", "c");

    var array2 = new Array();

    Array2 = Array1;

    /******************************************

    我当时的目的是想用新数组暂时存放原数组的数据,因为我可能改变这些数据这些数据,但是又不想改变原数组,所以我用一个新的临时数组来存放这些数据。但是运行的结果却是我操作了新数组,原数的值也改变了。

    /*****************代码段二*****************

    array2.pop();

    array2.push("d");

    var tempStr = "";

    for (var i=0; i<=array1.length; i++)

        tempStr += array1[i];

    alert(tempStr);

    /******************************************

    这让我想起了C/C++里面引用或者指针,可是我翻遍了手边的各种javascript手册或者教程都没有提到这一概念,但这里新数组确实是原数组的一个引用。而用其他方法来初始化这个新数组就不会出现这样的情况:

    /****************代码段三******************

    var array1 = new Array("a", "b", "c");

    var array2 = new Array(array1);

    /******************************************

    一些思考:win下javascript的数组对象应该是vc++写的class,而作者没有重载"=",所以使javascript的数组直接用"="赋值成为了对源数组的引用。

时间: 2025-01-02 07:04:01

&#106avascript中的数组应用的一点发现的相关文章

javascript中的数组应用的一点发现

javascript|数组  今天用javascript写一个小程序,用到数组时有一个小小发现,翻了手边的书都没有介绍,所以就发过来献丑了.    首先我们先定义一个数组,并给它赋值,然后再定义一个空的数组,另空数组=原数组:     /*****************代码段一*****************     var array1 = new Array("a", "b", "c");     var array2 = new Arr

STL中的set容器的一点总结

1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入.排序.删除.查找等.让用户在STL使用过程中,并不会感到陌生. 关于set,必须说明的是set关联式容器.set作为一个容器也是

指针-c语言中字符数组初始化问题

问题描述 c语言中字符数组初始化问题 字符数组初始化1: char str[]=""123"";//不报错2: char str[4]; str=""123"";//不能将const char[4] to char[4]字符指针初始化1: char *str=""123"";//不报错2: char *str; str=""123"";//不报错求

私人定制javascript中的数组知识点

先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好,便是晴天! 媳妇说:老公你太有诗意了. 老公:滚犊子,安不好我整死你! 数组的概念 javascript数组是值得有序集合,不过它实属一个javascript对象的特殊形式,这是一个很重点的定性. 创建数组 1.var a=new Array();//等同于[] 2.var a=new Array(

C语言中全局数组和局部数组的问题

 今天同学遇到一个在C语言中全局数组和局部数组的问题,卡了许久,我也没有第一时间看出问题,现在把问题梳理一下,并给出解决方案. 问题描述: 在全局声明的数组与在局部声明的数组有着不同的效果. 首先来看一个程序: 代码如下: #include <stdio.h> #include <stdlib.h> #define MAX 10 char a[MAX]; int main() { int i; char b[MAX]; char *c=(char *)malloc(MAX * si

android 从资源中获取数组

   8.1.1.概述 除了在Java代码中定义数组,Android还提供了在资源中定义数组,然后在Java代码中解析资源,从而获取数组的方法. 实际开发中,推荐将数据存放在资源文件中,以实现程序的逻辑代码与数据分离,便于项目的管理,尽量减少对Java代码的修改. 8.1.2.在资源中定义数组 步骤1.在res/values文件夹下创建arrays.xml文件: 步骤2.在arrays.xml文件中创建一个数组,如下代码所示: <?xml version="1.0" encodi

iOS 中由数组 NSArray 与 NSMutableArray 的使用理解偏差引发的多宗血案

iOS 中由数组 NSArray 与 NSMutableArray 的使用理解偏差引发的多宗血案 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 这个简单问题,一直以来,五年苹果开发经验告诉我,

mfc-为什么类中的数组size会突然变大

问题描述 为什么类中的数组size会突然变大 vector ans; //类中的public成员变量 先在一个函数中为ans push_back了很多值 这里的size是正常的因为 for (int i = 0; i < ans.size(); i++) m_list.AddString(ans[i]->getNum()); 可以正常执行,在listbox上可以看到正确的运行结果 但是在另一个按钮响应函数中执行下列语句时则一直提示 遇到不适当的参数 void searchInfo::OnLbn

编程-C中关于数组长度影响strncpy结果的问题,求教

问题描述 C中关于数组长度影响strncpy结果的问题,求教 今天刚刚学习字符串数组,运行过程中发现数组的长度会影响输出的结果 在长度为16及以下时候,一切正常 #include <stdio.h> #include <string.h> int main() { char s[16],l[16]; gets(s); puts(s); strncpy(l,s,3); strcat(l,s); puts(l); } 长度改为17及以上以后,问题出现了,strncpy函数的结果很奇怪