挽袖吟 2022-05-04 13:56:27
// ---------------------------------以相邻数值为一组----------------------------------
let random = (min, max) => {
return Math.floor(Math.random() * (max - min)) + min
}
// 随机生成10条数组
let data = Array.from({length: 10}).map(x => random(1, 100));
// 数组去重
data = [...new Set([...data])];
// 数组排序
data.sort((a, b)=> a - b);
let setArray1 = (data) => {
let newArr = [data[0]];
let result = [];
for (let i = 1; i < data.length; i++) {
// 当前数值等于前一个数值+1
if (data[i] == data[i - 1] + 1) {
newArr.push(data[i]);
} else {
result.push(newArr)
newArr = [data[i]];
}
// 最后一条也要加进去
if(i == data.length -1) {
result.push(newArr)
}
}
return result
}
let setArray2 = (data) => {
let newArr = [data[0]];
let result = [];
for (let i = 1; i < data.length; i++) {
// 判断数组中有没有当前数值-1
if(newArr.includes(data[i] - 1)){
newArr.push(data[i]);
} else {
result.push(newArr)
newArr = [data[i]];
}
// 最后一条也要加进去
if(i == data.length - 1) {
result.push(newArr)
}
}
return result
}
console.log(data); // [41, 45, 47, 48, 55, 65, 75, 76, 85, 98]
console.log(setArray1(data)); // [[41], [45], [47, 48], [55], [65], [75, 76], [85], [98]]
console.log(setArray2(data)); // [[41], [45], [47, 48], [55], [65], [75, 76], [85], [98]]
// ---------------------------------以[1-9]、[10-19]、[20-29] ... 为一组----------------------------------
let setArray3 = (data) =>{
let obj = {}
let result = []
for (let i = 0; i < data.length; i++) {
let num = Math.floor(data[i]/10);
if(obj[num]) {
obj[num].push(data[i])
} else {
obj[num] = [data[i]]
}
}
for (const key in obj) {
result.push(obj[key])
}
return result
}
console.log(setArray3(data)); // [[41, 45, 47, 48], [55], [65], [75, 76], [85], [98]]
- 共 1 页
- 1
@XueSeason 我好像记得es6
class Sub extends Super {}
在babel解析中是这样的第 7 题:ES5/ES6 的继承除了写法以外还有什么区别?