数组

去重

使用 set

[...new Set([1, 2, 3, 1, "a", 1, "a"])];

或者 es5 版本:

[1, 2, 3, 1, "a", 1, "a"].filter(function(ele, index, array) {
  return index === array.indexOf(ele);
});

生成数字数组

Array.from(Array(10).keys());
//0,1,2,3,4,5,6,7,8,9

一些行列时和 jsx map 需要

拷贝数组

const { wordList } = props;
let [...answerList] = wordList;

填充数组

new Array(10).fill("");

字符串排序

["abc", "bca", "bacdd", "bacdd", "cbaaa", "cbaee", "bcadd", "cba", "bca"].sort(
  (a, b) => (a > b ? 1 : b > a ? -1 : 0)
);
//['abc', 'bacdd', 'bacdd', 'bca', 'bca', 'bcadd', 'cba', 'cbaaa', 'cbaee']

数组随机乱序

var arr = ["鹿晗", "王俊凯", "蔡徐坤", "彭于晏", "周杰伦", "刘德华", "赵本山"];
arr.sort(function () {
 return Math.random() - 0.5;   // 值为 -0.5 ~ 0.5 的随机数
});
console.log(arr);

遍历时增减

flatMap 能用于在map期间增删项目(也就是修改items的数量。 只需返回一个1项元素数组以保留该项,返回一个多元素数组以添加项,或返回一个0项元素数组以删除该项。

const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.flatMap(x => x === 1? [] :[ x*2 ])

console.log(map1);
// expected output: Array [8, 18, 32]

用来解决以前需要如下实现的场景:

const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1
    .filter(x => x !== 1)
    .map(x => x * 2);

console.log(map1);
// expected output: Array [8, 18, 32]