Skip to content

1. 数据类型

数组 是一种特殊的变量,它能够一次存放一个以上的值。

js
[1,2,3,4,5]
[1,2,3,4,5]
js
[
    1,
    this.data,
    '',
    'hello~',
    null
]
[
    1,
    this.data,
    '',
    'hello~',
    null
]

由 对象中,键值对的 键名 或者 健值 组成的 数组

js
[
    key1,key2,key3,...
]
[
    key1,key2,key3,...
]
js
[
    value1,value3,value3,...
]
[
    value1,value3,value3,...
]

对象组成的数组

js
[
    {
        key1 : A_value1,
        key2 : A_value2,
        key3 : A_value3,
        ...
    },
    {
        key1 : B_value1,
        key2 : B_value2,
        key3 : B_value3,
        ...
    },
    {
        key1 : C_value1,
        key2 : C_value2,
        key3 : C_value3,
        ...
    },
    ...
]
[
    {
        key1 : A_value1,
        key2 : A_value2,
        key3 : A_value3,
        ...
    },
    {
        key1 : B_value1,
        key2 : B_value2,
        key3 : B_value3,
        ...
    },
    {
        key1 : C_value1,
        key2 : C_value2,
        key3 : C_value3,
        ...
    },
    ...
]

2. 操作数组 求数组元素的和

  • 递归:
js
function sum(arr) {
    var len = arr.length;
    if(len == 0){
        return 0;
    } else if (len == 1){
        return arr[0];
    } else {
        return arr[0] + sum(arr.slice(1));
    }
}
function sum(arr) {
    var len = arr.length;
    if(len == 0){
        return 0;
    } else if (len == 1){
        return arr[0];
    } else {
        return arr[0] + sum(arr.slice(1));
    }
}
  • 循环:
js
function sum(arr) {
    var s = 0;
    for (var i=arr.length-1; i>=0; i--) {
        s += arr[i];
    }
    return s;
}
function sum(arr) {
    var s = 0;
    for (var i=arr.length-1; i>=0; i--) {
        s += arr[i];
    }
    return s;
}
  • 函数式编程 map-reduce:
js
function sum(arr) {
    return arr.reduce(function(prev, curr, idx, arr){
        return prev + curr;
    });
}
function sum(arr) {
    return arr.reduce(function(prev, curr, idx, arr){
        return prev + curr;
    });
}
  • forEach遍历:
js
function sum(arr) {
    var s = 0;
    arr.forEach(function(val, idx, arr) {
        s += val;
    }, 0);
  
    return s;
};
function sum(arr) {
    var s = 0;
    arr.forEach(function(val, idx, arr) {
        s += val;
    }, 0);
  
    return s;
};
  • eval:
js
function sum(arr) {
    return eval(arr.join("+"));
};
function sum(arr) {
    return eval(arr.join("+"));
};

3. 数组方法

4. 数组排序

5. 数组迭代

6. const数组

7. 数组去空值

  • 含有空值数组的长度
js
var arr = ['red', 'green', 'blue', 'pink', 'purple', '', , '最后'];
console.log(arr)
console.log(arr.length)
var arr = ['red', 'green', 'blue', 'pink', 'purple', '', , '最后'];
console.log(arr)
console.log(arr.length)

数组去掉空值和空字符串

  • filter 过滤方法
js
var arr2 = ['a', '', 'b', null, undefined, 'c', '   ']
var r = arr2.filter(function(s) {
	return s && s.trim();
})
console.log(arr2)
console.log(arr2.length)
console.log(r)
console.log(r.length)
var arr2 = ['a', '', 'b', null, undefined, 'c', '   ']
var r = arr2.filter(function(s) {
	return s && s.trim();
})
console.log(arr2)
console.log(arr2.length)
console.log(r)
console.log(r.length)
  • splice方法
js
function trimSpace(array) {
	for (var i = 0; i < array.length; i++) {
		if (array[i] == "" || array[i] == null || typeof(array[i]) == "undefined") {
			array.splice(i, 1);
			i = i - 1;
		}
	}
	return array;
}
console.log(trimSpace(arr2))
console.log(trimSpace(arr2).length + ',这个splice方法好像不能去掉数组中含有空格字符的部分')
function trimSpace(array) {
	for (var i = 0; i < array.length; i++) {
		if (array[i] == "" || array[i] == null || typeof(array[i]) == "undefined") {
			array.splice(i, 1);
			i = i - 1;
		}
	}
	return array;
}
console.log(trimSpace(arr2))
console.log(trimSpace(arr2).length + ',这个splice方法好像不能去掉数组中含有空格字符的部分')