小数点计算求值不准解决办法
下面有几个例子
解决方法
parseFloat((a + b).toFixed(10))
1.数组初始化
需求: 后台返回一组数据,对这组数据标识选择或者不选中状态的时候
let selectedList=new Array(8).fill(false);
console.log(selectedList); //[false, false, false, false, false, false, false, false]
2.复制一组数据
需求: 复制一组数据,并且再使用数组的方法时不会影响原数组数据的变化
这是一个错误的方法 直接赋值(数据会跟着变化)
let arr=[1,2,3,4,5];
let arrcopy=arr;
arrcopy.push(6);
console.log(arr) //[1, 2, 3, 4, 5, 6]
console.log(arrcopy) //[1, 2, 3, 4, 5, 6]
下面是我常用的方法(只适用于简单的数组复制)
let arr=[1,2,3,4,5];
let arrcopy=[...arr];
arrcopy.push(6);
console.log(arr) //[1, 2, 3, 4, 5]
console.log(arrcopy) //[1, 2, 3, 4, 5, 6]
3.深拷贝对象数组(数组里的对象只能有一层)
let arr = [{
id: 1,
val: 1
}, {
id: 1,
val: 1
}, {
id: 1,
val: 1
}]
let dong = [];
arr.map(function (item, index, arr1) {
dong.push(Object.assign({}, item))
})
dong[0].val = 2;
dong.splice(1, 1)
console.log(dong)
console.log(arr)
5、深拷贝一个简单的对象
var obj = {a:1,b:2}
//一下是方法 只针对一层的简单对象的深拷贝
var { ...newObj } = obj;
var newObj=Object.assign({}, obj);
//拷贝没有特殊值的对象
var newObj = JSON.parse(JSON.stringify(obj));
6、数组转字符串
需要将数组元素用某个字符连接成字符串,示例代码如下:
var a, b,c;
a = new Array(a,b,c,d,e);
b = a.join('-'); //a-b-c-d-e 使用-拼接数组元素
c = a.join(''); //abcde
7、字符串转数组
实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:
var str = 'ab+c+de';
var a = str.split('+'); // [ab, c, de]
var b = str.split(''); //[a, b, +, c, +, d, e]
8、数组转成字符串拼接
var arr = [{
fieldName: "测试场地1",
lipstickList: [{
lipstickCode: '设备1', //设备名称
},
{
lipstickCode: '设备2', //设备名称
}
]
},
{
fieldName: "测试场地2",
lipstickList: [{
lipstickCode: '设备1', //设备名称
},
{
lipstickCode: '设备2', //设备名称
}
]
},
]
//比方说要转成 场地1-设备1,设备2;场地2-设备1,设备2
let res_str = "";
arr.map((val, index) => {
let res_str2 = "";
val.lipstickList.map((val1, index1) => {
res_str2 += val1.lipstickCode + ",";
});
res_str += val.fieldName + '-' + res_str2.substring(0, res_str2.length - 1) + ';'
});
console.log(res_str.substring(0, res_str.length - 1));
8、更改字符串里的文字
//把字符串里的至换成~符号
str.replace(/至/g,'~')
//把字符串里的-符号全部消除
str.replace(/-/g,'')
//字符串截取 开始下标 结束下标多1
str.substring(0, 4)
9、JSON字符串转换成对象
1.var obj = str.parseJSON();
2.var obj = JSON.parse(str);
10、JSON对象转化为JSON字符串。
1.var str=obj.toJSONString();
2.var str=JSON.stringify(obj);
注:小程序跳转传值想要传一个对象 可以先把对象转化成json字符串传送 然后由另一页面将json字符串转化为json对象
11、对象循环
const obj = {
id:1,
name:'zhangsan',
age:18
}
//第一种方法
for(let key in obj){
console.log(key + '---' + obj[key])
}
//方法二
console.log(Object.keys(obj)) //["id", "name", "age"]
console.log(Object.values(obj)) //[1, "zhangsan", 18]
12、对象删除一个属性值
var bonly={
name:'bonly',
age:"18",
weight:'70kg'
};
delete bonly['age'];
13、小数点计算精度问题
var r2=Math.round((i*j)*1000)/1000;
数组截取问题
slice方法
截掉前几位可以这样写
let arr=[1,2,3,4,5]
arr.slice(2) //[3, 4, 5]
arr.slice的其他用法
arr.slice(2,4) // [3, 4]
arr.slice(2,-1) // [3, 4]
arr.slice(2,-2) // [3]
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
删除前几个
arr.splice(0,2)
添加一个元素
let arr=[1,2,3,4,5]
arr.splice(2,0,"5555") //[]
arr //[1, 2, "5555", 3, 4, 5]
在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:
let arr=[1,2,3,4,5]
arr.splice(2,1,"2222222") //[3]
arr //[1, 2, "2222222", 4, 5]