尝试使用JS技巧
是否包含内容
includes(valueToFind[, fromIndex]);
var str = "Hello world, welcome to the Runoob.";
var n = str.includes("world", 12);
// false
var arr = [1,2,3];
var have2 = arr.includes(2);
// true
是否有一个满足条件
some(Function)
const array = [1, 2, 3, 4, 5];
// checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// expected output: true
是否所有都满足条件
arr.every(回调方法(元素[, 序号[, arr]])
const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold));
// expected output: true
归纳/累加
arr.reduce(回调方法( 累计结果, 当前值, [, 序号[, arr]] )
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
对象获取值Object.values
const data = { test1: 'abc', test2: 'cde' };
const arr = Object.values(data);
console.log(arr);
/** Output:
[ 'abc', 'cde']
**/
对象转数组Object.entries
const data = { test1: 'abc', test2: 'cde', test3: 'efg' };
const arr = Object.entries(data);
console.log(arr);
/** Output:
[ [ 'test1', 'abc' ],
[ 'test2', 'cde' ],
[ 'test3', 'efg' ]
]
**/
多重判断
//Longhand
if (x === 'abc' || x === 'def' || x === 'ghi' || x ==='jkl') {
//logic
}
//Shorthand
if (['abc', 'def', 'ghi', 'jkl'].includes(x)) {
//logic
}
函数调用简写
// Longhand
function test1() {
console.log('test1');
};
function test2() {
console.log('test2');
};
var test3 = 1;
if (test3 == 1) {
test1();
} else {
test2();
}
// Shorthand
(test3 === 1? test1:test2)();
评论