/map方法
function myMap(arr,callback){
if(!arr.length || !Array.isArray(arr) ||typeof callback !“function”){
return []
}else{
const result =[]
for(let i=0;i<arr.length;i++){
const item = arr[i]
result.push(callback(item))
}
return result;
}
}
let arr = [1,2,3,4,5]
const res = myMap(arr,(item)=>{
return item+“cccc”
})
console.log(res);
let arr = [1, 2, 3, 4, 5]
let result=arr.map( (item, index, arr) => {
console.log(item, index, arr);
return item+“cccc”})
console.log(result);
///filter方法//
function myFilter(arr, callback) {
if (!arr.length || !Array.isArray(arr) || typeof callback ! ‘function’) {
return []
} else {
const result = []
var xixi;
for (let i = 0; i < arr.length; i++) {
const item = arr[i]
xixi = callback(item, i, arr)
if (xixi) {
result.push(item)
}
}
return result
}
}
let arr = [1, 2, 3, 4, 5]
const res = myFilter(arr, (item, index, arr) => {
// console.log(item, index, arr)
return item % 2 !== 0
})
console.log(res) // [1, 3, 5]
let arr = [1, 2, 3, 4, 5]
let result=arr.filter( (item, index, arr) => {
console.log(item, index, arr);
return item % 2 !== 0})
console.log(result);
/reduce方法//
function myReduce(arr, callback) {
if (!Array.isArray(arr) || !arr.length || typeof callback !== ‘function’) {
return []
} else {
let value = arr[0]
for (let i = 1; i < arr.length; i++) {
value = callback(value, arr[i], i, arr)
}
return value
}
}
let arr = [1, 2, 3, 4, 5]
const resMult = myReduce(arr, (value, item, i, arr) => {
// console.log(value, item, i, arr)
return value * item
})
const resAdd = myReduce(arr, (value, item, i, arr) => {
// console.log(value, item, i, arr)
return value + item
})
console.log(resMult, resAdd) // 120 15
let arr = [1, 2, 3, 4, 5]
const result = arr.reduce(function myReduce(total,item){
return total+item
})
console.log(result);
/forEach方法//
let arr =[1,2,3,4,5]
arr.forEach(function myForeach(value,index ){
console.log(value,index);
})
function myForeach(arr,fn){
let result =[]
for(var i=0;i<arr.length;i++){
result.push(arr[i])
}
return result
}
var arr = [1,2,3,4,5,6,7]
const result = myForeach(arr,(value,index)=>{
})
console.log(result);
/every方法//
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
var arr = [1, 2, 3, 4, 6, 7, 8, 4];
function myEvery(arr, callback) {
var result=0;
var flag = true;
for (var i = 0; i < arr.length; i++) {
var result=callback(arr[i])
if (!result) {
flag=false;
return flag
}
}
return true
}
var result = myEvery(arr, (value) => {
return value > 0;
});
console.log(result);
/some方法//
var arr = [1,2,3,4,5,6,7,8,9]
function mySome(arr,callback){
var result;
for(var i=0;i<arr.length;i++){
result = callback(arr[i]);
if(result){
return true
}
}
return false
}
console.log(mySome(arr,(value)=>{
return value>200
})
);
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
console.log(someOver18);
//indexOf方法//
var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
console.log(fruits.indexOf(“Apple”));
var fruits = [“Apple”, “Orange”, “Apple”, “Mango”, “Mango”, “Mango”, “Apple”];
function myIndexOf(arr,fn){
for(let i=0;i<arr.length;i++){
if(fn(arr[i],i)){
return i;
}
}
return -1
}
console.log(myIndexOf(fruits,(value,index)=>{
return value==“Apple”&&index>=5;
}));
find方法/
var numbers = [4, 9, 16, 25, 29];
console.log(numbers.find(myFunction));;
function myFunction(value, index, array) {
return value > 18;
}
var arr = [299,43214,4325,23,1];
function myFind(arr,fn){
for(var i=0;i<arr.length;i++){
if(fn(arr[i])){
return arr[i]
}
}
}
console.log(myFind(arr,(value)=>{
return value<20
}));
lastIndexOf方法///
var fruits = [“Apple”, “Orange”, “Apple”, “Mango”];
console.log(fruits.lastIndexOf(“Apple”));;
var arr = [“Apple”, “Orange”, “Apple”, “Mango”];
function myLastIndexOF(arr,fn){
for(var i=arr.length;i>0;i–){
if(fn(arr[i],i)){
return i
}
}
return -1
}
console.log(myLastIndexOF(arr,(value,index)=>{
return value==“Apple”&&index<=2
}));
///findIndex方法/
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
function myFunction(value, index, array) {
return value > 18;
}
var arr = [299,43214,4325,23,1];
function myFind(arr,fn){
for(var i=0;i<arr.length;i++){
if(fn(arr[i])){
return i
}
}
}
console.log(myFind(arr,(value)=>{
return value<20
}));