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方法好像不能去掉数组中含有空格字符的部分')
liang14658fox