2021-06-30:js数组技巧、vue实现循环滚动

116 阅读1分钟

1、js数组技巧

1. new Set实现数组去重
// 数组去重
var arr = ['ws1','ws2','ws1','ws3','ws2','ws4','ws5']
var newArr1 = new Set(arr)
var newArr2 = Array.from(new Set(arr))
console.log(newArr1)
console.log(newArr2)

image.png

2. 非map的映射函数
// 映射函数
var arr = [
  { 
    name: 'ws1',
    value: 1
  },
  { 
    name: 'ws2',
    value: 2
  },
  { 
    name: 'ws3',
    value: 3
  },
  { 
    name: 'ws4',
    value: 4
  },
  { 
    name: 'ws5',
    value: 5
  }
]
var newArr = Array.from(arr,(item)=>item.value)
console.log(newArr);
console.log(arr);

image.png

3. 数组转对象
// 数组转对象
var arr = ['ws1','ws2','ws1','ws3','ws2','ws4','ws5']
var arrObj = {...arr}
console.log(arrObj);

image.png

4. 用数据填充数组
// 用数据填充数组
var arr = new Array(8).fill('3')
console.log(arr);

image.png

5. 合并数组
// 合并数组
var arr1 = ['w1','w2','w3','s1']
var arr2 = ['s1','s2','s3','w2']
var newArr = [...arr2,...arr1]
console.log(newArr);

image.png

6. 数组取交集
// 数组取交集
var arr1 = ['w1','w2','w3','s1']
var arr2 = ['s1','s2','s3','w2']
var newArr = arr1.filter(item=>arr2.includes(item))
console.log(newArr);

image.png

7. 删除数组中的假值
// 删除数组中的假值
var arr1 = ['ws1','ws2',null,undefined,'',NaN,'ws3','ws1']
var newArr = arr1.filter(Boolean)
console.log(newArr);

image.png

8. 数组各值相加
// 数组各值相加
var arr1 = [1,2,3,4,5]
var sum = arr1.reduce((x,y)=>x+y)
console.log(sum);
9. 日历
// 创建过去七天的数组
[...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days))
// 创建未来七天的数组
[...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days))
10. 获取URL的查询参数
let q={}; 
location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v); 
console.log(q);
11. 数组混淆
let arrSort = (arr) => arr.slice().sort(() => Math.random() - 0.5)
12. 空合并算子(??)

空合并运算符 (??) 是一个逻辑运算符,当其左侧操作数为空或未定义时返回其右侧操作数,否则返回其左侧操作数。

const foo = null ?? 'my school';
// 输出: "my school"

const baz = 0 ?? 42;
// 输出: 0

2. vue实现循环滚动列表:vue-seamless-scroll