首页 > 其他分享 >第九篇 手写原理代码 - 数组 【 实现 forEach、map、filter、every、some 】

第九篇 手写原理代码 - 数组 【 实现 forEach、map、filter、every、some 】

时间:2023-04-11 23:24:01浏览次数:48  
标签:map arr return callback some 第九篇 item const my

1、forEach

Array.prototype.my_forEach = function (callback) {
  for (let i = 0; i < this.length; i++) {
    callback(this[i], i, this);
  }
};

2、map

Array.prototype.my_map = function (callback) {
  const arr = [];
  for (let i = 0; i < this.length; i++) {
    arr.push(callback(this[i], i, this));
  }
  return arr;
};

3、filter

Array.prototype.my_filter = function (callback) {
  const arr = [];
  for (let i = 0; i < this.length; i++) {
    callback(this[i], i, this) && arr.push(this[i]);
  }
  return arr;
};

4、every

Array.prototype.my_every = function (callback) {
  let flag = true;
  for (let i = 0; i < this.length; i++) {
    flag = callback(this[i], i, this);
    if (!flag) break;
  }
  return flag;
};

5、some

Array.prototype.my_some = function (callback) {
  let flag = false;
  for (let i = 0; i < this.length; i++) {
    if (callback(this[i], i, this)) {
      flag = true;
      break;
    }
  }
  return flag;
};
使用
const arrTest = [
  { name: "caix-1987", age: 24 },
  { name: "caix-1988", age: 23 },
  { name: "caix-1989", age: 22 },
];

arrTest.my_forEach((item, index, arr) => {
  console.log("my_forEach", item, index, arr);
});

const my_map_data = arrTest.my_map((item) => {
  return item.age;
});

const my_filter_data = arrTest.my_filter((item) => {
  return item.age > 23;
});

const my_every_data = arrTest.my_every((item) => {
  return item.age > 23;
});

const my_some_data = arrTest.my_some((item) => {
  return item.age > 23;
});

标签:map,arr,return,callback,some,第九篇,item,const,my
From: https://www.cnblogs.com/caix-1987/p/17308250.html

相关文章

  • TreeMap运行错误
    Exceptioninthread"main"java.lang.ClassCastException:Day16_TreeMap.Starcannotbecasttojava.lang.Comparable提示类型转换错误,publicstaticvoidmain(String[]args){TreeMap<Star,String>Tr=newTreeMap<Star,String>();//下句出错......
  • java -- Map接口和可变参数
    MapMap:映射,是双列集合顶层接口java.util.Map<k,v>k:key键唯一v:value值可重复常用方法和EntrypublicVput(Kkey,VValue)//指定的键与指定值添加到Map集合中,添加成功返回null,添加失败返回之前的值publicVputIfAbsent(Kkey,VValue)//jdk1.8后新增......
  • LRU management (牛客多校) (map+list)
        思路:利用map+list暴力模拟就彳于了#pragmaGCCoptimize(2)#include<bits/stdc++.h>usingnamespacestd;#defineIOSios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);#defineMAXN100001#defineINF(0x3f3f3f3f)#defineuintunsignedint#d......
  • Go语言入门5(map哈希表)
    Map​ 哈希表是一种巧妙并且实用的数据结构。它是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。​ 在Go语言中,一个map就是一个哈希表的引用,map类型可以写为map[K]V,其中K和V分别对应key和value。m......
  • Android Kotlin mapTo
     在Kotlin中,mapTo是一种用于将集合中的元素转换成另一个集合的函数。它可以将一个集合的元素映射到另一个集合,并将结果添加到目标集合中。mapTo的语法如下:fun<T,R,C:MutableCollection<inR>>Iterable<T>.mapTo(destination:C,transform:(T)->R):C其中:T是源集......
  • mmap模块介绍
    内存映射模块了解计算机内存内存映射是一种使用较低级别的操作系统API将文件直接加载到计算机内存中的技术。它可以显著提高程序中的文件I/O性能。术语内存是指随机存取内存或RAM.计算机内存类型:物理的虚拟的共享的使用内存映射时每种类型的内存都会发挥作用,因此让我......
  • Java8 - sum求和,将 List 集合转为 Map,key去重(groupingBy),sorted排序
    Java8-sum求和,将List集合转为Map,key去重(groupingBy),sorted排序packagecom.example.core.mydemo.java8;publicclassGoodsPriceDTO{privateIntegerid;privateStringgoodName;privateIntegeramount;//重写toString方法,System可以打印输出......
  • map集合的3中遍历方式
    键找值://创建map的对象Map<String,String>map=newHashMap<>();//添加元素map.put("11","11");//通过找值,获取所有的键放到一个单列集合中去Set<String>key=map.keySet();//遍历键key.forEach(newConsume......
  • 禁用 DevTools 源映射功能, 隐藏 "DevTools failed to load SourceMap" 报错
    警告DevToolsfailedtoloadsourcemap:Couldnotloadcontentforchrome-extension://cofdbpoegempjloogbagkncekinflcnj/build/content.js.map:系统错误:net::ERR_BLOCKED_BY_CLIENT这个问题可能是因为浏览器的版本不同,所以设置的位置也会略有不同。以下是几个常见浏......
  • MIT 6.5840 2023 Spring(6.824)LAB1:MapReduce
    MIT6.58402023Spring(6.824)LAB1:MapReduce前言本次lab主要是完成一个基于RPC远程调用的单机单文件系统的简单MapReduce框架,并完成单词计数任务。基于golang实现,单Master,多Worker。实现worker的奔溃恢复(FaultTorrance),通过超时重新执行实现。主要的任务有,RPC调用参数及返回参数......