欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学习javascript数据结构和算法(一)

程序员文章站 2022-05-23 19:08:59
一 、数组 1、迭代数组(斐波那契数列循环) 2、数组操作 push() //添加元素到数组末尾 unshift() //添加元素到数组首位 pop() //删除数组最后元素 shift() //删除数组首位元素 splice(5,3,2,3,4) //从索引5开始删除3个元素,并开始添加元素2,3 ......

一 、数组

1、迭代数组(斐波那契数列循环)

var fibonacci = [];
fibonacci[1] = 1;
fibonacci[2] = 2;

for(var i = 3;i < 20;i++){
    fibonacci[i] = fibonacci[i-1] +fibonacci[i-2];
}

2、数组操作

push()   //添加元素到数组末尾

unshift() //添加元素到数组首位

pop()  //删除数组最后元素

shift() //删除数组首位元素

splice(5,3,2,3,4)  //从索引5开始删除3个元素,并开始添加元素2,3,4.

***多为数组迭代用多重循环

3、数组方法

合并

  • concat()     //连接数组并返回结果

迭代

every()       //对数组的每一项运行给定函数,若都返回ture则返回true

  • some()          //对数组的每一项运行给定函数,若任一项返回ture则返回true
  • filter()         //对数组的每一项运行给定函数,返回true的项组成的数组
  • foreach()   //对数组的每一项运行给定函数,无返回值
  • map()             //对数组的每一项给定函数,返回每次函数调用的结果组成的数组
  • reduce()      //previousvalue、currentvalue、index和array四个参数进行求和

排序

  • reverse()        //颠倒数组元素的顺序
  • sort()           //按照字母顺序排序,也可根据排序方法进行排序

搜索

  • indexof()   //返回第一个与给定参数相等的元素索引,没有找到则返回-1
  • lastindexof()   //返回在数组中搜索道德与参数相等的元素的索引的最大值
  • slice()          //传入索引值,将数组里对应索引范围内的元素作为新数组返回

输出为字符串

  • tostring()      //将数组作为字符串返回
  • valueof()     //将数组作为字符串返回
  • join()          //将所有元素连成字符串

***es6数组的新功能

(1)使用foreach和箭头函数迭代

number.foreach(x => {
    console.log((x % 2 == 0))
})

(2)使用for...of循环迭代

for(let n in number){
   console.log((n % = 2) ? 'even' : 'odd');
}

(3)@@iterator属性

entries()   //返回包含键值对的@@interator

let aentries = numbers.entries();
console.log(aetries.next().value);   //[0,1]位置0的值为1
console.log(aetries.next().value);   //[1,2]位置1的值为2

key()    //返回包含索引的@@interator

let akeys = number.keys();
console.log(akeys.next());    //{value:0,done:false}
console.log(akeys.next());    //{value:1,done:false}
console.log(akeys.next());    //{value:0,done:falseval 

value()   //返回数组的值

let avalues = numbers.values();
console.log(avalues.next()); // {value: 1, done: false }
console.log(avalues.next()); // {value: 2, done: false }
console.log(avalues.next()); // {value: 3, done: false } 

(4)form()方法      //根据已有的数组创建新数组或者过滤数组

let numbers2 = array.from(numbers);
//还可以传入一个用来过滤值的函数,例子如下:
let evens = array.from(numbers, x => (x % 2 == 0));
//上面的代码会创建一个evens数组,其中只包含numbers数组中的偶数。

(5)array.of方法   //根据传入的参数创建一个新数组

let numbers3 = array.of(1);
let numbers4 = array.of(1, 2, 3, 4, 5, 6);

//我们也可以用这个方法复制已有的数组
let numberscopy = array.of(...numbers4); 
//展开操作符(...)会把numbers4数组里的值都展开成参数。