发布于 2026-01-06 1 阅读
0

数据结构与算法基础 第[0]部分

数据结构与算法基础 第[0]部分

在您深入学习数据结构与算法之前(#mypersonalnotebook),我假设您已具备以下基础知识:

  • 条件
  • 重复结构(for循环和while循环)
  • 函数
  • 可变范围
  • 递归
  • 声明类

都是JavaScript程序员应该知道的基础知识。

笔记:

大批

每种编程语言都包含某种形式的数组。
数组是计算机编程中最常见的数据结构。

JavaScript 中的数组

JavaScript 中的数组是元素的线性集合,其中每个元素都可以通过索引(数字索引)访问。

如何在 Javascript 中创建数组

在 JavaScript 中创建数组最推荐的方法是使用计算成员访问[]运算符声明变量。

var myArray = [];

Enter fullscreen mode Exit fullscreen mode

当你像这样创建一个数组时,你会得到一个长度值为 0 的数组。我们来实际操作一下以确保这一点。

var myArray =  [];
console.log(myArray.length)//0
Enter fullscreen mode Exit fullscreen mode

我们还可以使用构造的模式创建一个数组。

var myArray =  new Array();
console.log(myArray.length)//0
Enter fullscreen mode Exit fullscreen mode
笔记:
  • JavaScript 中的数组是任何类型元素(函数、对象、基本类型等)的集合。
  • 计数从索引 0 开始,而不是 1。

访问数组元素

可以使用[]运算符访问数组元素。

var names =  ["Somto", "Ezeh",];
console.log(names[0] + ' ' names[1])// Somto Ezeh
Enter fullscreen mode Exit fullscreen mode

写入数组元素

将数据赋值给数组时,我们使用[]

var numbers =  [];
for(var i= 0; i < 10; i++){
    numbers[i] = i+1;
}
console.log(numbers)//1,2,3,4,5,6,7,8,9,10
Enter fullscreen mode Exit fullscreen mode

从字符串生成数组

对字符串调用split()函数会将该字符串拆分成多个部分,并根据每个部分生成一个数组。

var string = "I Love javascript ";
var makeArray = string.split(' ');
console.log(makeArray);//["I","Love","javascript"]
Enter fullscreen mode Exit fullscreen mode

访问器函数

使用 JavaScript访问器函数,我们可以访问数组中的一个元素并返回一个值。

indexOf()

indexOf 函数遍历数组,查看传递给它的参数是否在目标数组中找到,并返回其位置。

 var names = ["John","Samuel","Samuel","Obinna"];
 var position = names.indexOf("Samuel");
 console.log(position);//1
Enter fullscreen mode Exit fullscreen mode

indexOf ()函数返回与参数匹配的第一个元素的位置,如果未找到则返回 -1。

lastIndexOf()
lastIndexOf 函数遍历数组,查看传递给它的参数是否在目标数组中找到,并返回匹配的最后一个位置,如果找不到则返回 -1。

 var names = ["John","Samuel","Samuel","Obinna"];
 var position = names.lastIndexOf("Samuel");
 console.log(position);//2
Enter fullscreen mode Exit fullscreen mode

toString()join()返回以逗号分隔的数组的字符串表示形式。

  var myArray  = ["How to use","Accesor","Functions"];
  var makeString = myArray.join()
  console.log(makeString);//How to use,Accesor,Functions
Enter fullscreen mode Exit fullscreen mode

要去掉逗号,只需向join()函数传递一个空引号即可。

  var myArray  = ["How to use","Accesor","Functions"];
  var makeString = myArray.join(" ")
  console.log(makeString);//How to use Accesor Functions
Enter fullscreen mode Exit fullscreen mode

concat ()splice()函数可以从现有数组生成一个新数组。concat ()
函数将多个数组合并并生成一个新数组,而splice()函数从目标数组的子集中生成一个新数组。

concat()

var firstArray  = ["Princess", "Precious", "Patience", "Pessy"];
var secondArray = ["Adesunloye","Adedeji","Adetoro"];
var joinAll = firstArray.concat(secondArray);
console.log(joinAll);//["Princess", "Precious", "Patience", "Pessy","Adesunloye","Adedeji","Adetoro"]

Enter fullscreen mode Exit fullscreen mode

拼接()

var names  = ["Princess", "Precious", "Patience", "Pessy"];
var newArray = names.splice(2,3);
console.log(newArray);//["Patience","Pessy"]
Enter fullscreen mode Exit fullscreen mode

突变函数

流行音乐()

pop ()函数从数组末尾移除一个元素并返回该元素的值。

var numbers   = [1,2,3,4,5,6];
var remove  = numbers.pop();
console.log(remove);// 6
Enter fullscreen mode Exit fullscreen mode

向数组中添加元素
有两种方法:
push ()unshift(),但我们先来讨论push()函数。

推()

push ()函数将一个元素添加到数组的末尾。

var array = [1,2,3,4,5,6,7,8];
array.push(9)
console.log(array) // 1,2,3,4,5,6,7,8,9
Enter fullscreen mode Exit fullscreen mode

unshift( )
函数会将一个元素添加到数组的开头。

var array = [2,3,4]; 
array.unshift(1);
console.log(array)//1234
Enter fullscreen mode Exit fullscreen mode


shift ( )函数从数组的开头移除一个元素并返回移除后的值。

var array = ["I", "LOVE", "ARRAYS"];
var firstElementRemoved = array.shift(); 
console.log(firstElementRemoved);// I

//You can also decide to discard the return value 

var array = ["I", "LOVE", "ARRAYS"];
            array.shift();
console.log(array);//["LOVE", "ARRAYS"]
Enter fullscreen mode Exit fullscreen mode

splice( )
函数用于在数组中间添加或删除元素。 要向数组中间添加或删除元素,需要以下参数。

  • 起始索引(您希望从哪里开始添加元素)。
  • 要移除的元素数量(添加元素时为 0)。
  • 你想添加到数组中的元素。
var array = [10,20,30,70,80,90];
var newArray = [40,50,60]; 
array.splice(3,0,newArray); 
console.log(array); //10,20,30,[40,50,60],70,80,90
Enter fullscreen mode Exit fullscreen mode

传递给splice()函数的元素可以是列表,而不一定是数组的集合。

var array = [10,20,30,70,80,90];
array.splice(3,0,40,50,60);
console.log(array); //10,20,30,40,50,60,70,80,90
Enter fullscreen mode Exit fullscreen mode

以下是使用splice()函数从数组中删除元素的示例:


var intro = ["Hello", "Callme", "John", "Samuel"];
var removeintro = intro.splice(1,2);
console.log(removeintro);//Callme,John 
Enter fullscreen mode Exit fullscreen mode

reverse()函数
反转数组元素的顺序。

var array = [1,2,3,4,5,6,7,8,9];
var reverseArray = array.reverse();
console.log(reverseArray);//9,8,7,6,5,4,3,2,1
Enter fullscreen mode Exit fullscreen mode


sort ()函数按字典顺序对数组元素进行排序:有关字典顺序的更多信息,请参阅相关文档。

var names = ["Williams","Joe","John","Samuel","Somto","Ezeh"]; 
names.sort(); 
console.log(names);// Ezeh,Joe,John,Samuel,Somto,Williams
Enter fullscreen mode Exit fullscreen mode

太好了!一切正常,现在让我们看看排序功能对数字的处理效果如何。

var numbers = [1,2,3,4,50,60,70,80,5,6,7];
numbers.sort();
console.log(numbers);//1,2,3,4,5,50,6,60,7,70,80
Enter fullscreen mode Exit fullscreen mode

糟糕……结果
和我们预期的不一样。别担心,我们可以通过将一个函数传递给sort()函数来解决这个问题。

function compare(num1, num2) {
   return num1 - num2;
 }
var nums = [1,2,3,4,50,60,70,80,5,6,7]; 
var sorted = nums.sort(compare);
console.log(sorted)// 1,2,3,4,5,6,7,50,60,70,80
Enter fullscreen mode Exit fullscreen mode

是的!它奏效了。

数据结构与算法基础(第一部分)即将推出……

文章来源:https://dev.to/johnsamuelob/data-struct-and-algorithm-basics-part0