字符串
1.初始化
var str = '' //单引号
var str = "" //双引号
var str = '' ; //返斜冒号,全局匹配
var str= new Str( ); //自变量创建字符串,一般不建议试用
2. 处理
- 去空格
' abc '.trim( );//去掉首尾的空格
' abc '.trimLeft( );//去掉左侧的空格
' abc '.trimRight( ) ;//去掉右侧的空格
- 替换字符串
'abc'.replace('a', 'b') // 'bbc' 局部替换
'aac'.replace(/a/g, 'b') // 'bbc' 全局替换
- 字符串分割成数组
'a,b,c'.split(',') // ['a', 'b', 'c']
- 数组转化成字符串
let array = ["George","John","Thomas"]
let str = array.join("|") // "George| John| Thomas"
- 强转为字符串类型
let number= 100;
number.toString();// "100"
- 返回某个字符串对象的原始值
let myDate=new Date()
myDate.valueOf();// 1583316878578
//返回date 的毫秒表示。返回值和方法 Date.getTime 返回的值相等,返回1970年1月1日午夜以来的毫秒数。
- 字符串拼接
'你好' + '小明'
let name = '小明'
`你好${name}` // 注意: 这里不是双''符号,而是 ``
'a'.concat('b');//‘ab’
- toUpperCase():把字符串转换为大写
- oLowerCase(): 返回一个字符串,该字符串中的字母被转换成小写。
3. 常用方法
- indexOf();返回 String 对象内第一次出现子字符串的字符位置,若没有发现则该方法返回 -1
let str="Hello world!"
console.log(str.indexOf("Hello")");// 0
console.log(str.indexOf("World") ");// -1,这里是大小写有区别,检索不出来
- 截取字符串
const str = "Hello, World!";
const subStr = str.substring(7, 12); // 结果为 "World"
const str = "Hello, World!";
const subStr = str.substr(7, 5); // 结果为 "World"
const str = "Hello, World!";
const subStr = str.slice(7, 12); // 结果为 "World"
- 字符串中是否存在某个字符
var str = "ABCDEF";
str.search('CD') // 2 返回与正则表达式查找内容匹配的第一个字符串的位置。如果没有匹配到子字符串,则返回-1。
var name = "王汉炎"; //目标字符串
name.includes('炎'); // true;返回的是一个布尔值
数组
1.初始化
var ary = new Array();// 创建一个空数组
var arr2 = new Array(20); // 创建一个包含20项的数组
var arr3 = new Array(“lily”,“lucy”,“Tom”); // 创建一个包含3个字符串的数组
var arr4 = []; //创建一个空数组
2. 数组新增
1. push() 方法:在数组的末尾添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
arr.push(4); // arr 现在是 [1, 2, 3, 4]
2. unshift() 方法:在数组的开头添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
arr.unshift(0); // arr 现在是 [0, 1, 2, 3]
3. splice() 方法:从数组中添加/删除项目,然后返回被删除的项目。
let arr = [1, 2, 3];
arr.splice(2, 0, 4); // 在索引2的位置添加4,arr 现在是 [1, 2, 4, 3]
4. 直接索引赋值:如果你知道具体位置,可以直接赋值。
let arr = [1, 2, 3];
arr[arr.length] = 4; // arr 现在是 [1, 2, 3, 4]
5. 动态新增(这里是将元素替换)
this.$set(target, propertyName/index, value)
参数: target 要改变的数据源(可以是一个对象或数组)
参数: propertyName/index 要改变的对象属性名称 或 索引
参数: value 新赋的值
示例:
// 新增
let array = [1, 2, 3];
this.$set(array, 1, 100) // [1, 100, 3]
3. 数组删除
1. pop()方法: 用于把数组的最后一个元素从其中删除,并返回最后一个已删除元素的值
let arr = [1, 2, 3];
arr.pop(); // arr 现在是 [1, 2]
2. shift():删除原数组第一项,并返回第一项元素的值
let arr = [1, 2, 3];
arr. shift(); // 删除的第一项
3. Arrary.splice(start, deleteCount, item1 , item2);
参数: start开始索引值
参数: deleteCount 不为 0 时表示要删除的个数,为0时,为增加;
参数: item1为增加的元素,
参数: 改变后的数组
示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2);//["Apple", "Mango"]
// 2—起始索引值;2—删除个数
4. 删除数组中的指定元素:
4.1 使用splice方法,直接在原数组中删除指定元素的位置。例如:
const array = [1, 2, 3, 4, 5];
const elementToRemove = 3;
const index = array.indexOf(elementToRemove);
if (index > -1) {
array.splice(index, 1);
}
console.log(array); // [1, 2, 4, 5]
4.2 使用filter方法,返回一个新数组,不包含指定元素的元素;
const array = [1, 2, 3, 4, 5];
const elementToRemove = 3;
const newArray = array.filter(item => item !== elementToRemove);
console.log(newArray); // [1, 2, 4, 5]
4.3 通过id值来找到他的索引值,并利用 splice 进行删除
del(id){
var index = this.list.findIndex(item=>{
if (item.id == id){
return true;
}
})
this.list.splice(index,1)
}
4.4 删除对象数组中的对象元素 ,注意这里的对象元素必须是数组中的元素对象,如果新建对象它的地址是不在 this.listData 中的, 获得的 index 永远是 -1
let item = this.listData[0];
let index = this.listData.indexOf(item); // 获取待删除对象的索引
if (index > -1) { // 如果索引存在
this.listData.splice(index, 1); // 删除指定对象元素
console.log("---- 打印: " + JSON.stringify(this.listData));
}
5. 删除数组中的重复元素:
const array = [1, 2, 3, 4, 4, 5, 5];
const newArray = Array.from(new Set(array));
console.log(newArray); // [1, 2, 3, 4, 5]
4. 数组拼接
var a = [1,2,3];
a.concat(4,5); // [1,2,3,4,5]
// 方法二
var ary3 =[...ary1, ...ary2]; // [1,2,3,4,5,6]
5. 数组根据下表替换某个元素
arr[index]=新值;
6. 数组和字符串互转
var a = [ 1, 2, 3, 4, 5, 6 ];
a.join("|"); // "1|2|3|4|5|6"
var arr = [1,2,3,4,5,6,7,8,9,11];
let str = arr.toString(); // "1,2,3,4,5,6,7,8,9,11"
经典使用案例:
- 根据 goods_id 删除数组对象中特定商品
1.1 利用filter返回一个不包含该指定商品的数组
const newCartList = cartList.filter(item => item.goods_id !== goods_id);
1.2 利用indexOf获取下标,在使用splice删除对应的下标元素
let index = this.listData.indexOf(item); // 获取待删除对象的索引
if (index > -1) { // 如果索引存在
this.listData.splice(index, 1); // 删除指定对象元素
}
1.3 使用 forEach() 和 delete
array.forEach((e, i) => {
if (e === element) delete array[i];
});
- 根据goods_id 更新数组对象中商品的状态
1.1 使用Map 返回一个修改后的数组对象
const newCartList = cartList.map(item => {
if (item.goods_id === goods_id) {
item.goods_count = 修改的数据;
}
return item;
});
1.2 使用findIndex 获取对象下标,然后修改
const index = arr.findIndex(item => item.id === id);
if (index !== -1) {
arr[index].status = newStatus;
}
1.3 利用find获取特定对象进行修改
let listData = [{name: '小明',age: 18},{name: '小黄',age: 26}]
let item = listData.find(item=>item.id === id)
if (index !== -1) {
item.status = newStatus;
}
对象
1.初始化
var x = { };
2. 新增
var x = { }
x.name ="小屋先生" // 新增了一条属性
// 动态新增
this.$set(target, propertyName/index, value)
参数: target 要改变的数据源(可以是一个对象或数组)
参数: propertyName/index 要改变的对象属性名称 或 索引 , 注意: 对象的属性要用 '' 包含起来
参数: value 新赋的值
示例:
var dic = {};
dic.name = '小黄';
this.$set(dic, 'name', ' 大黄' ) // {"name":" 大黄"}
3. 合并
let a = { name: 'jack'};
let b = { age: 10 };
Object.assign(a, b);
console.log(a) // {name: "jack", age: 10}
console.log(b) // { age: 10 }
let c = { ...a, ...b }
console.log(c) // {name: "jack", age: 10}
4. 属性方法
// 检查对象是否有某个属性
var obj = {
key1: 'value1',
key2: 'value2'
};
console.log(obj.hasOwnProperty('key1')); // 输出: true
console.log(obj.hasOwnProperty('key3')); // 输出: false
// 使用undefined检查对象是否具有某个属性
var obj = {
key1: 'value1',
key2: 'value2'
};
console.log(obj.key1 !== undefined); // 输出: true
console.log(obj.key3 !== undefined); // 输出: false
// 对象转 json 字符串
var data={name:'goatling'}
JSON.stringify(data) // '{"name":"goatling"}'
// json字符串转对象
var data='{"name":"goatling"}'
JSON.parse(data) // name:"goatling"
5. 遍历
let obj = {
'name': '小明',
'age': 18,
'address': '北京'
}
let keys = Object.keys(obj) // ["name","age","address"]
let values = Object.values(obj) // ["小明",18,"北京"]
// for..in 获取的 index 是下标
for (let index in this.listData) {
let item = this.listData[index]
console.log("-- 打印: " + JSON.stringify(item));
}
// for..of 获取的 item 是数组对象中的对象元素
for (let item of this.listData) {
console.log("-- 打印: " + JSON.stringify(item));
}
//使用Object.keys()结合forEach:
const obj = { a: 1, b: 2, c: 3 };
Object.keys(obj).forEach(key => {
console.log(key, obj[key]);
});
Math对象
abs(x)——返回数的绝对值
ceil(x)——把数向上舍入 // 例如: Math.ceil(3.1) = 4
floor(x)——把数向下舍入
max(x, y)——返回最大值
min(x, y)——返回最小值
pow(x, y)——返回x的y次幂
random()——返回0-1间的随机数
round(x)——把数四舍五入为最接近的整数
sqrt(x)——返回数的平方根








网友评论