对象数组字符串之间的转换
````字符串----->数组
let str = '字符串St'
'字符串St'
//1、split() 方法
let strArr = str.split('')
['字', '符', '串', 'S', 't' ]
//2、展开运算符
strArr = [...str]
['字', '符', '串', 'S', 't' ]
//3、解构赋值
const [...strArr] = str
['字', '符', '串', 'S', 't' ]
//4、Array.from
const strArr = Array.from(str)
['字', '符', '串', 'S', 't' ]
————————————————————————————————————————————————————————————————————————————————
````字符串----->对象
// JSON.parse()
var str2 = "{'title':'标题,'icon: '图标,'url: 'https://blog.csdn.net/}"
console.log(JSON.parse(str2))
————————————————————————————————————————————————————————————————————————————————
````数组----->对象
//1、Object.assign(xx,xx)
var arr4 = ["海王星","冥王星","地球"]
Object.assign({},arr4)
输出:{0: “海王星”, 1: “冥王星”, 2: “地球”}
//2、用遍历方法,forEach,map 都可以
var var5 = ["海王星","冥王星","地球"]
var obj = {}
var5.forEach((item,index)=>{
obj[index] = item
})
输出:{0: “海王星”, 1: “冥王星”, 2: “地球”}
//复杂情况
var formArr = [
{name: "one", value: "11111"},
{name: "two", value: "22222"},
{name: "three", value: "33333"},
{name: "four", value: "44444"}
];
var obj={ };
formArr.map(function (e, item) {
obj[e.name] = e.value;
})
输出:{one: “11111”, two: “22222”, three: “33333”, four: “44444”}
————————————————————————————————————————————————————————————————————————————————
````数组----->字符串
//1、join() 方法
var arr1 = [1,2,3,4,5,6,7,8,9]
var end = arr1.join(",")
1,2,3,4,5,6,7,8,9
//2、toString()方法
var arr2 = [1,2,3,4,5,6]
var end = arr2.toString()
1,2,3,4,5,6
————————————————————————————————————————————————————————————————————————————————
````对象----->字符串
//1、JSON.stringify()
var obj = {one: "11111", two: "22222", three: "33333", four: "44444"}
JSON.stringify(obj)
输出:"{“one”:“11111”,“two”:“22222”,“three”:“33333”,“four”:“44444”}"
````对象----->数组
//1、Object.keys() values()
单独将key值转成数组,或单独将value值转化为数组
var obj = {one: "11111", two: "22222", three: "33333", four: "44444"}
Object.keys(obj)
Object.values(obj)
输出: [“one”, “two”, “three”, “four”]
输出:[“11111”, “22222”, “33333”, “44444”]
//2、
var obj = {one: "11111", two: "22222", three: "33333", four: "44444"};
var arr = [];
for (let i in obj) {
let o = {};
// console.log(i,obj[i])
o[i] = obj[i];
arr.push(o)
}
console.log(arr);
————————————————————————————————————————————————————————————————————————————
数组
/**
* 汇总,循环
*/
// 给数组中的每项数据都添加一个方法,结果作为一个新的数组返回,并不会改变原来的数组
Array.map((value)=>{ return value+1 })
// 循环数组,forEach改变原数组,没有返回值
Array.forEach((item,index)=>{})
// 可以用来写求和求积 例: return preValue+(*)currentValue
Array.reduce((preValue(初始值OR上一个值),currentValue(当前值))=>{ r })
/**
* 查找,筛选
*/
// 筛选向方法中传入一个判断条件,将满足条件的值变成一个新的数组返回
Array.filter((item,index)=>{ r })
// 从数组的开头向后查找,返回查找的第一个元素的索引 匹配为严格匹配 ===
Array.findIndex(查找的值,开始查找的位置索引)
// 查找满足特定条件的第一个元素,并返回满足回调条件的第一个元素
Array.find()
/**
* 删除,添加,修改,替换
*/
// 向数组末尾添加一个或多个元素,并返回数组的长度,
Array.push()
// 向数组前添加一个或多个元素,并返回数组的长度
Array.unshift()
// 删除数组中的最后一位元素,并返回数组长度
Array.pop()
// 删除数组中的第一个元素,并返回数组长度
Array.shift()
// 万能的方法可以实现数组的增、删、改,arr.splice(开始位置, 删除的个数,添加的值(新添加在开始位置前))
Array.splice()
// 截取数组中的一段arr.slice(开始的位置,结束的位置) (开始位置,结束位置] 不会改变原数组
Array.slice()
// 替换数组中的元素,会改变原数组,接受三个参数,arr.fill(替换的值,开始替换的位置,结束的索引) 传一个值会全部替换,两值会从开始位置往后全部替换
Array.fill()
/**
* 判断
*/
// every 每一项 some 一些
// 向方法中传入一个判断条件,遍历数组每一项,若全部为true,才返回true ,否则返回false
Array.every(value =>{ r })
// 与every相反,若一项为true就返回true
Array.some( r )
// 此方法是用来判断一个对象是不是数组,是的话返回true,不是返回false
Array.isArray()
// 此方法用来判断arr.includes(1)是否有传入的元素1,有的话返回true,没有的话返回false
Array.includes()
/**
* 拆分,拼接,合并
*/
// 此方法是用来将数组转变为字符串格式,例:['a','b','c'] "a,b,c"
Array.toString()
// 此方法也是将数组转换为字符串,但和toString不同的是join可以设置元素之间的间隔
Array.join()
// 把字符串分割成字符串数组split("分隔符",返回数组的最大长度) 不会改变原变量
Array.split()
// 此方法是一个可以将多个数组合并成一个数组的方法
Array.concat()
/**
* 排序
*/
// 按指定的参数对数组进行排序,按每一项第一位排序,会改变原数组 先排数字再排数组
// 如: console.log([1, 11, 10, 4, 5, 6, 22].sort()); [1, 10, 11, 22, 4, 5, 6]
// 对对象数组进行排序 a-b为降序 b-a为升序 arr.sort((a, b) => a.data - b.data);
Array.sort()
// 反转数组,颠倒数组顺序 会改变原数组
Array.reverse()
对象
// 此方法是用来获取对象的key值的返回一个包含对象所有key值的数组
Object.keys(obj)
// 会将两个对象合并为一个新对象,改变第一个对象
Object.assign(原对象,需要克隆的对象)
// 比较两个值,如果两个值相同返回true,不相同返回false,类似于===,它会将+0和-0视作不同值
Object.is(value1,value2)
// 检查一个对象中是否存在另一个对象的原型链
// function obj() {} let b = new obj() console.log(obj.prototype.isPrototypeOf(b)); true
Object.isPrototypeOf()
for in 遍历对象的key item[key]
数字
* Number 的属性
Number.MAX_VALUE; // 返回能表示的最大数字
Number.MIN_VALUE; // 返回能表示的最小数字
Number.NAN; // 非数字值
Number.NEGATIVE_INFINITY; // 返回负无穷,当溢出时返回
Number.POSITIVE_INFINITY; // 返回正无穷,当溢出时返回
Number 的方法
// 使用指定进制,将一个数字转换为字符串
Number.toString();
// 将一个数字转换为本地数字格式的字符串
Number.toLocaleString();
// 将一个数字转换为包含指定小数位数的字符串
Number.toFixed();
Number.parseInt()// 将字符串转换成整型数字,和全局方法 parseInt() 作用一致。
Number.parseFloat()// 将字符串转换成浮点数,和全局方法 parseFloat() 作用一致。
// 判断传递的参数是否为整数。
Number.isInteger()
// 判断传递的参数是否为有限数字。
Number.isFinite()
Number.isNaN()// 判断传递的参数是否为NaN。
// 将数字转换为字符串,使用指定数目的有效数字
Number.toExponential();
// 返回一个Number对象的原始值
Number.valueOf();
// 判断传递的参数是否为安全整数。
Number.isSafeInteger()
eval() 函数计算或执行参数。
如果参数是表达式,则 eval() 计算表达式。如果参数是一个或多个 JavaScript 语句,则 eval() 执行这些语句。
字符串
//JavaScript中的字符串有一个length属性,该属性可以用来获取字符串的长度:
String.length
// 截取字符串中的一段 [开始位置,结束位置)如果是负数,-1为字符串的最后一个字符 不会改变原变量
String.slice(start)
String.slice(start,end)
// 把字符串分割成字符串数组split("分隔器",返回数组的最大长度) 不会改变原变量
String.split('separator/splitter',limit)
// 把字符串重复几遍count
String.repeat(count)
// 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
String.replace('searchValue','replaceValue')
// 返回指定下标位置的字符,不传参默认为0。如果index不在[0-str.length)之间,返回空字符串。
String.charAt()
// 返回字符串在字符串中第一次出现的位置,indexOf()方法对大小写敏感,没有找到返回-1。第二个参数表示开始查找的位置,默认从下标0开始 匹配为严格匹配 ===
String.indexOf()
//includes():该方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。该方法的语法如下:
String.includes()
// 把字符串转为小写,返回新的字符串,不改变原来的变量。
String.toLowerCase()
// 把字符串转为大写,返回新的字符串,不改变原来的变量。
String.toUpperCase()
// 返回所有查找的关键字内容的数组str.match(需要查找的字符串) 返回一个对象index为字符串出现的索引 没找到返回null
String.match()
//字符串模式匹配
replace()、match()和search()方法可以用来匹配或者替换字符。
//移除字符串收尾空白符
trim()、trimStart()和trimEnd()这三个方法可以用于移除字符串首尾的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
Math
* Math 中常用的变量
Math.E; // 返回e,即2.718281828459045
Math.LN2; // 返回的 2 的自然对数,即 0.693
Math.LN10; // 返回 10 的自然对数,即 2.302
Math.PI // Π 3.141592653589793
#Math 的方法
Math称之为数学函数,它也是对象数据类型的,主要是用来操作数字的
1、Math.abs()求绝对值
Math.abs(-1)
2、Math.ceil/Math.floor向上取整,向下取整
向上取整,无论是正数还是负数,都取最大的值
向下取整,无论是正数还是负数,都取最小的值
Math.ceil(1.2)
2
Math.ceil(-1.6)
-1
Math.floor(1.8)
1
Math.floor(-1.1)
-2
3、Math.round()四舍五入
正数的话,还是正常的,之前理解的,但是如果是负数,临界点必须大于5
Math.round(1.5)
2
Math.round(-1.5)
-1
Math.round(-1.51)
-2
4、Math.sqrt()开平方
Math.sqrt(9)
3
5、Math.pow(n,m)取幂
n的m次幂
Math.pow(3,2) ==> 9
6、Math.PI
Math.PI ===>3.141592653589793
7、Math.max/Math.min 获取最大值和最小值
Math.max(1,2,3)
Math.min(4,5,6)
8、Math.random()获取0~1之间的随机数(大于等于0小于1)
获取n到m之间的随机数:Math.random()*(m-n)+n;
//获取10到20之间的随机输
Math.random()*10+10