重新认识JavascriptArray(数组)

218 阅读3分钟

1.创建数组

--1.最简单的创建数组的方式就是 var numbers=[];这样你就会得到一个长度为0的空的数组

 你可以打印一下 console.log(numbers.length) //结果为0 

--2.还可以创建数组的时候向数组里面添加任意的元素进去的方式创建数组

 var numbers=[1,2,3,4,5];
 console.log(numbers.length) // 长度为5

--3.通过Array的构造函数的方式创建数组,

var array=new Array();
console.log(array.length) //结果为0
 还可以为初始的函数传入一些值作为数组的初始值
 var numbers=new Array(1,2,3,4,5);
 console.log(numbers.length) // length=5

---4.可以通过Array.isArray()来判断对象是否是数组

var numbers=3;
var arr=[1,2,3]

console.log(Array.isArray(numbers)) // false
console.log(Array.isArray(arr)) // true

么哪种创建数组的方式最好呢, 强烈推荐 var arr=[] 这种方式创建的数组比 对象的方式创建数组效率要高一些。

2读写数组

--1. for循环读写数组

  var nums=[]
  for(val i=0;i<100;i++){
      nums[i]=i+1;
  }
  console.log(nums) 输出的数组是 1-100 的数集合

--2.也可以通过数组下角标的方式

   var numbers=[1,2,3,4,5];
   var sum=numbers[0]+numbers[1]+numbers[2]+numbers[3]+numbers[4]
   sum=1+2+3+4+5=15
   所以有时候使用for循环来遍历数组
    var numbers=[1,2,3,4,5];
     for(val i=0;i<numbers.length;i++){
      nums[i]=i+1;
  }
  这里使用数组的长度length进行循环,而不是直接使用数字。length反应的是当前数组种的个数 刻意确保循环遍历所有的元素

3.字符串转换成数组

--1.调用字符串的split的方法可以讲字符串转换成数组。

var sentence="i hava a girl friend";
var words=sentence.split(" "); // 空格作为分隔符 如果句子中有其他的比如说是 - 或者是,都可以采用split("-")或者split(",") 方式讲字符串转换成数组
for(var i=0;i<words.length;i++){
   console.log("word"+i+":"+words[i])
}
输出的结果为 word0:i word1:hava word2:a word3:girl word14:friend 

4.数组的整体性进行操作

   讲一个数组赋值给另外的一个数组
   var nums=[]
   for(var i=0;i<5;i++)
   {
       nums[i]=i+1;
   }
   var copynums=nums;
   nums[0]=400;
   console.log(copynums[0]) //输出的值也是400
   这种赋值要注意 你只是给nums数组添加了一个新的引用 当你修改原来的数组的时候 nums的时候 被赋值的copynums 里面的值也会跟着修改。------>这种复制叫做浅复制
   
   那么深复制怎么样做呢,
   function copy(arr1,arr2)
   {
       for(var i=0;arr1.length;i++){
           arr2[i]=arr1[i];
       }
   }
   var nums=[]
   for(var i=0;i<5;i++)
   {
       nums[i]=i+1;
   }
   var copyArr=[];
   copy(nums,copyArr);
   nums[0]=400;
   console.log(copyArr[0]) //输出的值还是1
   我们使用上面的方法再重复一边上面的操作
   

5.存取函数

1.查找元素

indexOf常见的存取函数之一,用来查找传进来的参数是否再目标####数组种。如果目标数组包含该函数就返回该元素再数组种的索引 否则就返回-1