关于数组添加值和访问值的一些小问题

今天来看看关于数组方面的一些小问题,可能对你会有一些小小的帮助,当然如果我有说错的地方也欢迎指教,毕竟我也是一个菜鸟。

1.

1 // var arr = [1,2,3];
2 // arr["bbb"]="nor 1";
3 // arr[-2]="nor 2";
4 // console.log(arr);    >> [1, 2, 3, bbb: "nor 1", -2: "nor 2"]
5 // console.log(arr.bbb)    >>    "nor 1"

如果我们想往数组里面添加一个值,以[]的形式添加,如果写的是负数或者字符串那么它是在数组的末尾添加,并且它是以键值对的形式添加的,所以下次访问这个值的时候可以使用点的形式访问,但是如果是数字必须通过[]访问。

2.

1 // var arr = [1,2,3];
2 // arr["bbb"]="nor 1";
3 // console.log(arr);    [1, 2, 3, bbb: "nor 1"]
4 // console.log(arr[3])    undefined

如果通过字符串或者负数往数组里面添加一个值,那么下次访问的时候也必须通过键值对形式访问

3.

1 // var arr = [1,2,3];
2 // arr["bbb"]="nor 1";
3 // arr[-2]=222;
4 // arr.push(4);
5 // console.log(arr);    >>    [1, 2, 3, 4, bbb: "nor 1"]
6 // console.log(arr.length);    >> 4

// 值得注意的是通过字符串或者负数添加的值,那个数组是不会添加它的长度的,并且使用这种方式来添加的永远会在数组的最后面,因为我们使用push方法添加数字4的时候我们发现它并没有把是添加到最后后面,大家都知道push方法的将值添加到数组的末尾的。也许我们可以得出一个结论那就是数字和数字排列,键值对与键值对排列。

更新数组小问题。

1 // var num = [];
2 // num.push(4,3,5); >>返回值是添加的最后那个数也就是数字5
3 // num.reverse(); >>数组倒序排列,不是按照大小,是反过来
4 // console.log(num) >>[5, 3, 4]
1 var num = [];
2 num[5,"a",0]="111"; >>["111"] 如果末尾写的是0或者数组长度加1那么和正常情况一样。
3 console.log(num);
1 var num = [];
2 num[5,"a",6]="111";
3 console.log(num);  >>[6: "111"]

// 后面的会把前面的覆盖,最后一位写的索引不能大于数组长度+1,否则不管你写的是不是数字都是通过键值对的方式添加,如果是负数也是一样的。

时间: 2024-10-10 05:42:32

关于数组添加值和访问值的一些小问题的相关文章

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

给数组添加一个根据指定下标删除元素的方法、得到0-100的随机数不重复(js)、得到外联样式的css样式值

/** *删除数组指定下标或指定对象 */ Array.prototype.remove=function(obj){ for(var i =0;i <this.length;i++){ var temp = this[i]; if(!isNaN(obj)){ temp=i; } if(temp == obj){ for(var j = i;j <this.length;j++){ this[j]=this[j+1]; } this.length = this.length-1; } } }

JS数组方法的的返回值和是否改变该数组总结

concat() 方法 concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 返回值 返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的.如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组. join() 方法  不改变原数组 join() 方法用于把数组中的所有元素放入一个字符串. 元素是通过指定的分隔符进行分隔的. 返回值 返回一个字符串.该字符串是通过把

D3.js的基础部分之数组的处理 数组的排序和求值(v3版本)

数组的处理 : 数组时一种常用的数据结构,通常是由相同数据类型的项组成集合,拥有数组名,可以凭借数组名和下标来访问数组项.虽然JavaScript允许一个数组中存在不同的数据类型,但实际很少这样使用.需要被可视化的数据常以数组的形式存在,虽然JavaScript中提供了不少操作数组的方法,但JavaScript不是为了数据可视化而存在的.因此,D3数据可视化的需求封装了不少数组处理函数. 一 排序 : 排序的方法: d3.ascending(a,b); //递增函数.如果a小于b,则返回-1:如

灵魂拷问:如何检查Java数组中是否包含某个值 ?

摘自:https://www.cnblogs.com/qing-gee/p/12053156.html 在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题.比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下. 另外,我想要告诉大家的是,作为程序员,我们千万不要轻视这些基础的知识点.因为基础的知识点是各种上层技术共同的基础,只有彻底地掌握了这些基础知识点,才能更好地理解程序的运行原理,做出更优化的产品. 我曾在某个技术论坛上分享过

PHP 两个多维数组根据某个键的值进行组合排序的几种思路

需求: 有两个多维数组 $arr = [ ['name'=>'dee','age'=>28], ['name'=>'emperor', 'age'=>30], ['name'=>'Lee', 'age'=>32], ['name'=>'Arshavin', 'age'=>33] ]; $arr2 = [ ['name'=>'Ozil', 'age'=>27], ['name'=>'CR7', 'age'=>29], ['name'=&

C 语言中的左值和右值。以及对比数组名和指针取数组元素的区别。

左值:出现在赋值符左边的符号有时称为左值. 右值:出现在赋值符右边的符号有时称为右值. 编译器为每个变量分配一个地址(左值),这个地址在编译时可知,而且该变量在运行时一直保存于这个地址.相反,存储于变量中的值(它的右值)只有在运行时才可知.如果需要用到变量中存储的值,编译器就发出指令从指定地址读入变量值并将它存于寄存器. 可以看到,每个符号的地址在编译时可知. 对比一下几个式子: //常规变量 int a=1;//这里a作为左值出现,代表的是地址,即在a表示的这个内存地址存入数值1.即a代表的内

编程题:结构体数组的引用。功能:输出结构体数组各元素的成员值

编程题:结构体数组的引用.功能:输出结构体数组各元素的成员值 #include<stdio.h> void main() { struct person { char name[20]; char sex; int age; float height; }per[3]={{"Li Ping",'M',20,175},{"Wang Ling",'F',19,162.5}, {"Zhao Hui",'M',20,178}}; int i;

JavaSE8基础 HashMap put 添加键与新值对并返回旧的值

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) code: package jizuiku0; import java.util.HashMap; /* * @version V17.09 */ public class MapDemo_000 { public static void main(String[] args) { HashMap<Integer, String>