程序=数据结构+算法
在我对数据结构和算法进行描述之前,请允许我把这句话放在文章开头来显示数据结构和算法的重要性。
科班出身的同学都明白数据结构和算法的重要性,而对于没有接受过正规的计算机科学教育,唯一熟悉的数据结构就是数组了,但在处理一些复杂的问题时,数组实在是太low了。随着js在服务器端发展的趋势,灵活运用数据结构和算法是必须的。
用一句话概括让你对数据结构和算法有一个初步的印象:只要是有些规模的程序,就需要用数据结构存储程序输入的数据,再加上一些巧妙的算法输出理想的结果。最终该程序的性能就取决于你使用的数据结构和算法了,时间复杂度上是O(1)还是O(n)由你做主。
举例说明:我们姑且不考虑空间复杂度,使用数组和BST(二叉查找数)完成查找一组数中最大值的算法,时间复杂度上数组最多做到O(N),而BST查找、插入、删除的复杂度等于树高,也就是O(logN),最坏O(N)。
前言结束,下面就对javascript数组进行描述。
数组定义:一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。
var nums = [];
var nums = [1, 2, 3, 4];
var obj = [1, null, “Tom”, false];
var nums = [];
for(var i=0; i
nums[i] = i + 1;
var str = “hi tencent !”;
var words = str.split(“ “);
for(var i=0; i< words.length; i++) {
print(words[i]);
var nums = [];
for(var i=0; i
nums[i] = i + 1;
}
var copyNums = nums;
function copy(arr1, arr2) {
for(var i=0; i
arr2[i] = arr1[i];
}
var nums = [1, 2, 3, 4];
var words = [“hi”, “tencent”];
var nums1 = [1, 2, 3, 4];
var nums2 = [1, 2, 3, 4];
var nums = num1.concat(num2);
var nums1 = [1, 2, 3, 4];
var nums = nums1.splice(1, 2);
var words = [“hi”, “tencent”];
var pos = words.indexOf(“tencent”);
if(pos >= 0) {
print(“tencent at position” + pos);
} else {
print(“tencent not found”);
var nums = [1, 2, 3, 4];
var nums = [1, 2, 3, 4];
var nums = [1, 2, 5, 6];
var nums1 = [3, 4];
nums.splice(2, 0, nums1);
var nums = [1, 2, 3, 4];
var nums = [1, 2, 3, 4];
var nums = [1, 2, 5, 6];
nums.splice(2, 1);
未完待续(数组遍历、排序、二维数组、对象数组)