JavaScript字符串、数组操作
2017-08-17 本文已影响65人
不要和我名字一样
ES6
语法引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()
用于头部补全,padEnd()
用于尾部补全。
padStart()
let str = '123';
str = str.padStart('5', 'aa');
console.log(str);//str:aa123
padEnd()
let str = '123';
str = str.padEnd('5', 'aa');
console.log(str);//str:123aa
上面代码中,padStart
和padEnd
一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
- 如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
- 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
- 如果省略第二个参数,默认使用空格补全长度。
- 另一个用途是提示字符串格式。
let str = '12';
str = str. padStart(10, 'YYYY-MM-DD');
console.log(str);//str:YYYY-MM-12
模板字符串
在之前拼接字符串的时候通常都这样写:
$('#result').append(
'There are <b>' + basket.count + '</b> ' +
'items in your basket, ' +
'<em>' + basket.onSale +
'</em> are on sale!'
);
有了模板字符串之后使用``(反引号)这个符号可以多行拼接:
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
数组
数组的遍历:
forEach
,for of
,map
,
- forEach遍历数组:
const arr = [120,110,28,9,7,5];
arr.forEach((item,index)=>{
console.log(`forEach遍历第${index}个数:${item}`);
});
image.png
- map遍历数组
const arr = [120,110,28,9,7,5];
arr.map((item,index)=>{
console.log(`map遍历第${index}个数:${item}`)
});
image.png
- for of遍历数组
const arr = [120,110,28,9,7,5];
for (item of arr){
console.log(item);
//输出120,110,28,9,7,5
}
- for of 遍历字符串
const str = 'hello';
for (item of str){
console.log(item);
}
//输出h,e,l,l,o
-
filter
的使用
//使用filter过滤特定条件的数字组成新的数组
const arr = [120,110,28,9,7,5];
let arr1 = arr.filter((item)=>{
return item>100
});
console.log(arr1)
//输出 120,110
-
reduce
的使用
//让数组中前项和后项做某种计算,并累计最终值
const arr = [120,110,28,9,7,5];
arr.reduce((prev,next)=>{
console.log(prev+next)
});
//输出230
-
every
的使用
//检测数组中每一项是否满足条件
const arr = [120,110,28,9,7,5];
const result = arr.every((item)=>{
return item>4
});
console.log(result);
//返回结果为`true`。只有全部为true才可以
- some 的使用
//检测数组中是否有些项满足条件
const arr = [120,110,28,9,7,5];
const result1 = arr.some((item)=>{
return item>40
});
console.log(result1);
//返回结果为`true`。只要满足一个即为true。
数组去重
- Set + Array.from() 数组去重
let arr = [12,13,12,11,0];
let arr1 = Array.from(new Set(arr));
console.log(arr1);//输出:12,13,11,0
- …[拓展运算符] + Set 数组去重
let arr = [12,13,12,11,0];
let arr1 = [...new Set(arr)];
console.log(arr1);
日期格式化:时间戳转化为日期
// 格式化时间 时间戳=>日期
const timestamp = '1425553097';//秒数
const d = new Date(timestamp * 1000); //根据时间戳生成的时间对象
const date = `当前时间:${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;
console.log(date);