1.数组对象
instanceof 运算符,可以判断一个对象是否属于某种类型
Array.isArray()用于判断一个对象是否为数组
isArray() 是 HTML5 中提供的方法
ar arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
2.添加删除数组元素方法
1.push()往数组尾追加元素
let arr = [1, 2, 3];
console.log(arr.push(4, '哈哈哈')); //输出5
console.log(arr); //输出[1,2,3,4,哈哈哈]
2.unshift()往数组头追加元素
let arr = [1, 2, 3];
console.log(arr.unshift(4, '哈哈哈')); //输出数组长度5
console.log(arr); //输出[4,"哈哈哈",1,2,3]
3.pop()删除数组尾最后一个元素
let arr = [1, 2, 3];
console.log(arr.pop()); //输出被删除元素
console.log(arr); //输出[1,2]
3.数组排序
let arr = [1, 2, 3];
arr.reverse();
console.log(arr); //输出[3,2,1]
let arr1 = [41, 1, 6, 8, 3, 5];
//arr1.sort(); //默认升序,单单这样写可能会出现问题[ 1, 3, 41, 5, 6, 8 ]
arr1.sort(function(a, b) {
// return b - a; // 降a序
return a - b; // 升序
});
console.log(arr1); //[ 1, 3, 5, 6, 8, 41 ]
4.数组索引
let arr = [1, 2, 3, '我'];
console.log(arr.indexOf('我')); //输出3 从前往后查找
console.log(arr.lastIndexOf('我'));//输出3 从后往前查找
5.数组转字符串
6.数组删除操作
1.进行插入操作但不删除元素(第二个参数为0)
var fruits = ["Banana", "Orange", "Apple", "Mango"];\
fruits.splice(2,0,"Lemon","Kiwi");
//输出Banana,Orange,Lemon,Kiwi,Apple,Mango
2.进行插入操作但并删除元素(第二个参数不为0)
var fruits = ["Banana", "Orange", "Apple", "Mango"];\
fruits.splice(2,1,"Lemon","Kiwi");
//输出Banana,Orange,Lemon,Kiwi,Mango
7.基本包装类型
为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。 基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
var str = 'andy';
console.log(str.length);
按道理基本数据类型是没有属性和方法的, 而对象才有属性和方法, 但上面代码却可以执行, 这是因为 js 会把基本数据类型包装为复杂数据类型, 其执行过程如下:
// 1. 生成临时变量,把简单类型包装为复杂数据类型
var temp = new String('andy');
// 2. 赋值给我们声明的字符变量
str = temp;
// 3. 销毁临时变量
temp = null
8.查找某个字符出现的位置和次数
let str = "bvafsabbadabadb";
let index = str.indexOf('b');
let num = 0;
let arr1 = [];
while (index !== -1) {
//console.log(index);
arr1.push(index);
num++;
index = str.indexOf('b', index + 1) //从当前位的下一位开始查找
}
console.log('b出现的位置为' + arr1.join(','));
console.log('b出现的次数为' + num);
9.查找字符串中出现最多的字符(使用Object方法)
let o = {};
for (let index = 0; index < str.length; index++) {
const element = str[index];
if (o[element]) {
o[element]++;
} else {
o[element] = 1;
}
}
console.log(o);
o[0] = 0;
var max = 0;
let ch = '';
for (var k in o) {
//console.log(k);
//console.log(o[max]);
if (o[k] > o[max]) {
console.log(max);
max = o[k];
console.log(max);
ch = k;
}
}
console.log('最多的字符是' + ch + '一共出现了' + max + '次');
//最多的字符是s一共出现了6次
10.根据位置返回字符
11.字符串操作
1.concat('str1','str2'....)
let str = 'andy';
console.log(str.concat('das')); //andydas
2.substr('截取的起始位置','截取几个字符')
let str1 = "握手吧小伙子"
console.log(str1.substr(2, 2)); //吧小
3.字符串转数组split('分隔符') 与之相对的数组转字符串join()
let str2 = '我&是&一个&字符串';
console.log(str2.split('&'));
4.替换字符replace('被替换的字符','替换为字符')
let str4 = '替换替换替换';
//把所有的替变为“@”
while (str4.indexOf('替') != -1) {
str4 = str4.replace('替', '@');
}
console.log(str4);//@换@换@换
11.字符串大小写转换
let str = "Where are you?"
console.log(str.toUpperCase()); //WHERE ARE YOU?
console.log(str.toLowerCase()); //where are you?