当前位置: 代码迷 >> 综合 >> Javascript数据结构与算法--读后总结(2)数组
  详细解决方案

Javascript数据结构与算法--读后总结(2)数组

热度:50   发布时间:2024-02-01 07:35:26.0

1、访问元素

要访问数组里特定位置的元素,可以用 中括号传递数值位置 , 得到 想知道的 值 或者赋新的值。
假如我们想输出数组  arr  里的所有元素,可以通过循环遍历数组,打印元素,如下所示:
 
    for (var i = 0; i < arr.length; i++) {console.log(arr[i]);}

例子:求斐波那契数列的前20个数字。已知斐波那契数列中第一个数字是1, 第二个是2,从第三项开始,每一项都等于前两项之和:

斐波那契数列为:1 1 2 3 5 8 13 21...(这里题设第一个数为1,所以代码设计去掉了数列的第一个1)

    var fibonacci = []; //声明并创建了一个数组fibonacci[1] = 1; //按题意赋值fibonacci[2] = 2; //按题意赋值 for (var i = 3; i < 20; i++) {fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; //循环赋值}for (var i = 1; i < fibonacci.length; i++) { //循环遍历console.log(fibonacci[i]); //打印每次遍历的元素} console.log(fibonacci);//输出数组

2、数组中添加元素

注意:在JavaScript中,数组是一个可以修改的对象。如果添加元素,它就会动态增长。在C和Java等其他语言里,我们要先决定数组的大小,想添加元素就要创建 一个全新的数组,不能简单地往其中添加所需的元素。

初始化一个数组:

var arr = [0,1,2,3,4,5,6,7,8,9];

(1)在数组末位插入元素——使用 push 方法

思想:给数组添加一个元素(比如10),只要把值赋给数组中最后一个空位上的元素即可

arr[arr.length] = 10;

使用 push 方法

arr.push(11)

(2)在数组首位插入元素——使用 unshift 方法

思想:

  1. 要腾出数组里第一个元素的位置,把所有的元素向右移动一位。
  2. 循环数组中的元素,从最后一位(arr[arr.length])开始,将其对应的前一个元素的值赋给它,依次处理
  3. 最后把想要的值赋给第一个位置(arr[0])上
    for (var i = arr.length; i >= 0; i--) {arr[i] = arr[i - 1];}arr[0] = -1;    // -1为自定义值

使用 unshift 方法

arr.unshift(-1)

3、数组中删除元素

(1)删除数组末位元素——使用 pop  方法

arr.pop(11)

(2)删除数组首位元素——使用 shift 方法

思想:把数组里所有的元素都左移了一位

    for (var i = 0; i < numbers.length; i++) {numbers[i] = numbers[i + 1];}

注意:这样的话,数组的长度仍然是原长度,即数组中还有额外的一个元素(未定义,值是undefined)。只是把数组第一位的值用第二位覆盖了,并没有删除元素。

要确实删除数组的第一个元素,可以用  shift  方法实现:
arr.shift();

4、在任意位置添加或删除元素——使用splice方法

使用splice方法,简单地通过指定位置/索引,就可以删除相应位置和数量的元素:

arr.splice(5,3);    //删除了从数组索引5开始的3个元素

注意:对于JavaScript数组和对象,我们还可以用 delete 操作符删除数组中的元素,例如 delete numbers[0] 。然而,数组位置0的值会变成 undefined,也就是说,以上操作等同于 numbers[0] = undefined 。因此,我们应该始终使用splice、pop或shift方法来删除数组元素。

把数字2、3、4插入数组里:

    var arr = [0, 1, 2, 3, 4, 5, 6]arr.splice(5, 0, 2, 3, 4);console.log(arr) //[0, 1, 2, 3, 4, 2, 3, 4, 5, 6]var arr = [0, 1, 2, 3, 4, 5, 6]arr.splice(5, 1, 2, 3, 4);console.log(arr) //[0, 1, 2, 3, 4, 2,3, 4, 6]  注意是删除第5个元素后的元素
第一个参数:要在其后删除或插入元素  的元素的索引值(在该元素后做操作)
第二个参数:删除元素的个数(上面例子里,我们的目的不是删除元素,所以 传入0 )。
第三个参数往后:要添加到数组里的值(元素2 、 3 、 4 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  相关解决方案