数组对象
- var arr0 = new Array(2); //表示数组的长度为2
var arr1 = new Array(2, 3, 4, 5, 6, 6); //等价于创建了[2,3,4,5,6,7] - 检测是否为数组:(1)instanceof 运算符 检测是否为数组
( 2)Array.isArray(参数);H5新增的方法 ie9以上的版本支持 - 添加删除数组元素方法
(1)arr.push(4,‘pink’);
(2)push是可以给数组追加新的元素
(3)push()参数直接写 数组元素就可以了
(4)push完毕之后 返回的结果是新数组的长度
console.log(arr.push(4,‘pink’)); ——>返回结果是新数组的长度
==unshift ==在数组的开头 添加一个或者多个数组元素,其他与push一样
(5) pop() 它可以删除数组的最后一个元素,后面不跟参数,返回的是删除的元素
(6)shift() 它可以删除数组的第一个元素,其他跟pop()一样
把数组中大于等于2000的数,去掉其他的保存在新数组中
function salary(arr) {
var newarr = [];
for (var i = 1; i < arr.length; i++) {
if (arr[i] < 2000) {
newarr.push(arr[i]);
}
}
return newarr;
}
console.log(salary([1500, 2000, 3000, 1000, 20]));
-
数组排序
1.翻转数组
arr.reverse();
2.冒泡排序
arr.sort(); 但是有问题,只能升序排列个位数,出现多位数就会有问题
解决方法(固定,背下来即可):
arr1.sort(function(a, b) {
// return a - b; 按照升序排列
return b - a;
}); -
数组索引号
indexOf(数组元素) 返回该数组元素的索引号,但是只返回第一个满足条件的索引号 如果在数组里面找不到元素,返回-1
lastIndexOf(数组元素) 从后往前查找数组的索引号,但是返回的索引号,是从第一个开始的值。 -
数组去重案例
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
// newArr.indexOf(arr[i]) === -1
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique([1, 2, 333, 3, 3, 3, 3, 6]));
- 转换为字符串
toString()
join(‘分隔符’);
arr.join('|')
字符串对象
- 基本包装类型
- 字符串不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间
因为字符串的不可变,所以不要大量拼接字符串 - 字符串所有的方法,都不会修改字符串本身,操作完成会返回一个新的字符串
- 根据字符返回位置
str.indexOf(‘春’, 3); 默认从头开始查找,从索引号是3的位置开始往后查找 - 查找字符换中所有o出现的位置以及次数
var str = “accoefogbodfosopp”;
var index = str.indexOf(‘o’);
var num = 0;
while (index != -1) {
console.log(index);
num++;
index = str.indexOf(‘o’, index + 1);
}
console.log(‘是’ + num);- 根据位置返回字符
- 统计出现最多的字符和次数
var str = "accoefogbodfosopp";
var o = {};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i); //chars是字符串的每一个字符
if (o[chars]) {
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
var max = 0; //遍历对象,判断最多的次数和相应的对象名
var ch = '';
for (var k in o) {
if (o[k] > max) {
max = o[k];
ch = k;
}
}
console.log(max, ch);
- 替换字符 replace(‘被替换的字符’,‘替换为的字符’); 只会替换第一个字符
- 把所有的o替换为 ‘’
var str1 = ‘accoefogbodfosopp’;
while (str1.indexOf(‘o’) != -1) {
str1 = str1.replace(‘o’, '’);
}
console.log(str1); - 字符转换为数组 split(‘分隔符’);