function map(arr, callback) {
if (!Array.isArray(arr) || !arr.length || typeof callback !== 'function') {
return []
}
let result = []
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i], i, arr))
}
return result
}
function fn(value, idx, arr) {
return value * 2
}
var arr = [...Array(10).keys()]
console.log(map(arr, fn))