let arr = [2, 9, 6, 7, 4, 3, 1, 7, 0, -1, -2];
// Symbol("description") 是一种用于表示任意精度整数的数据类型,可以安全地存储和操作超出 Number 类型安全限制的大整数(大于 2^53 - 1 或小于 -2^53 + 1)
// BigInt("123")Symbol 是一种唯一且不可变的数据类型,通常用作对象属性的键(避免命名冲突)
const dataType = (value) => {
return Object.prototype.toString.call(value).match(/\[object (\w+)\]/)[1];
};
const forMap = (callBack, args) => {
const result = [];
if (dataType(args) === "Array") {
for (let i = 0; i < args.length; i++) {
if (callBack(args[i], i)) {
result.push(args[i]);
}
}
}
if (dataType(args) === "Object") {
for (const key in args) {
if (args.hasOwnProperty(key) && callBack(args[key], key)) {
result.push(args[key], key);
}
}
}
return result;
};
// 便利对象
// const obj = { name: "lily", age: "20" };
// forMap((item, key) => {
// console.log("key::: ", key);
// console.log("item::: ", item);
// }, obj);
const sort = (args) => {
if (dataType(args) === "Array") {
const a = forMap((item, index) => {
return item === 2;
}, args);
console.log(a);
}
};
sort(arr);
// console.log("arr::: ", arr);