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

一 、数组

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数组里的值都展开成参数。

原文地址:https://www.cnblogs.com/blancher/p/10401041.html

时间: 2024-10-10 01:16:10

学习javascript数据结构和算法(一)的相关文章

重读《学习JavaScript数据结构与算法-第三版》-第2章 ES和TS

定场诗 八月中秋白露,路上行人凄凉: 小桥流水桂花香,日夜千思万想. 心中不得宁静,清早览罢文章, 十年寒苦在书房,方显才高志广. 前言 洛伊安妮·格罗纳女士所著的<学习JavaScript数据结构与算法>第三版于2019年的5月份再次刊印发行,新版内容契合当下,实为JavaScript开发人员的必备之佳作.有幸重读此版,与诸君分享共勉. 内容提要 此章节为第2章-ECMAScript与TypeScript概述,主要介绍了JS和TS的相关概念,以及在JS新版本中的新特性:let.解构.箭头函数

重读《学习JavaScript数据结构与算法-第三版》- 第3章 数组(一)

定场诗 大将生来胆气豪,腰横秋水雁翎刀. 风吹鼍鼓山河动,电闪旌旗日月高. 天上麒麟原有种,穴中蝼蚁岂能逃. 太平待诏归来日,朕与先生解战袍. 此处应该有掌声... 前言 读<学习JavaScript数据结构与算法>- 第3章 数组,本节将为各位小伙伴分享数组的相关知识:概念.创建方式.常见方法以及ES6数组的新功能. 数组 数组是最简单的内存数据结构,用于存储一系列同一种数据类型的值. 注:虽然数组支持存储不同类型的值,但建议遵守最佳实践. 一.数组基础 创建和初始化数组 new Array

重读《学习JavaScript数据结构与算法-第三版》- 第6章 链表(一)

定场诗 伤情最是晚凉天,憔悴厮人不堪言: 邀酒摧肠三杯醉.寻香惊梦五更寒. 钗头凤斜卿有泪,荼蘼花了我无缘: 小楼寂寞新雨月.也难如钩也难圆. 前言 本章为重读<学习JavaScript数据结构与算法>的系列文章,该章节主要讲述数据结构-链表,以及实现链表的过程和原理. 链表 链表,为什么要有这种数据结构呢?当然,事出必有因! 数组-最常用.最方便的数据结构,But,当我们从数组的起点或中间插入或移动项的成本很高,因为我们需要移动数组元素. 链表,是存储有序的元素集合.链表中的元素在内存中并不

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习JavaScript数据结构与算法第3版》

最近几年学前端的人会越来越多,再加上前端的范围越来越广,从前端发展为全栈,数据结构和算法的功底要求势必将越来越高. <数据结构与算法图解>电子书及代码是数据结构与算法的入门指南,不局限于某种特定语言,略过复杂的数学公式,用通俗易懂的方式针对编程初学者介绍数据结构与算法的基本概念,培养编程逻辑.主要内容包括:为什么要了解数据结构与算法,大O表示法及其代码优化利用,栈.队列等的合理使用,等等. <算法图解>电子书非常的体贴,看起来也很快,用图来解释算法是非常好的想法,可作为学习数据结构

学习JavaScript数据结构与算法 2/15

第一章 JavaScript简介 js不同于C/C++,C#,JAVA,不是强类型语言. 通常,代码质量可以用全局变量和函数的数量来考量(数量越多越糟).因此,尽可能避免使用全局变量. JS数据类型 原始数据类型:null,undefined,字符串,数,布尔值和symbol(es6新引入的数据类型,表示独一无二的值). 派生数据类型/对象:js对象,包括函数,数组和正则表达式. JS创建普通对象的方式 第一种:var obj = new Object(); 第二种: var obj = ();

&lt;学习JavaScript数据结构与算法(第3版)&gt; pdf 分享下载

链接:https://pan.baidu.com/s/1GuLxL3ZB9fxYUfzfGLRMJg 提取码:avuz 原文地址:https://www.cnblogs.com/xiak/p/10915047.html

javascript数据结构与算法---列表

前言:在日常生活中,人们经常要使用列表,比如我们有时候要去购物时,为了购物时东西要买全,我们可以在去之前,列下要买的东西,这就要用的列表了,或者我们小时候上学那段时间,每次考完试后,学校都会列出这次考试成绩前十名的同学的排名及成绩单,等等这些都是列表的列子.我们计算机内也在使用列表,那么列表适合使用在什么地方呢?不适合使用在什么地方呢? 适合使用在:当列表的元素不是很多的情况下,可以使用列表,因为对列表中的元素查找或者排序时,效率还算非常高,反之:如果列表元素非常多的情况下,就不适合使用列表了.

javascript数据结构和算法 零(前记+序言)

前记 这本书Data Structure and Algorithm with Javascript 我将其翻译成<< javascript 数据结构和算法>> 为什么这么翻译?而不是翻译成"用javascript实现数据结构和算法" 原因有二: 一个,我觉的它更加简洁,第二个,我是想强调我们在这里使用的是javascript. 我不喜欢一些翻译的人把一个简单的语句进行加工,搞得晦涩难懂.我更喜欢外国人写书的 那种原汁原味.同样,我很喜欢外国人的那种分享精神,它

JavaScript数据结构和算法

前言 在过去的几年中,得益于Node.js的兴起,JavaScript越来越广泛地用于服务器端编程.鉴于JavaScript语言已经走出了浏览器,程序员发现他们需要更多传统语言(比如C++和Java)提供的工具.这些工具包括传统的数据结构(如链表,栈,队列,图等),也包括传统的排序和查找算法.本文主要是总结什么情况下使用何种数据结构较好,并没有细讲里面的原理和实现方式,仅仅提供给阅读过<数据结构和算法>的同学作为总结和参考笔记,如果未细究过数据结构和算法的同学,本文也可以作为一个方向,希望能引