当前位置: 首页 > news >正文

批量快捷创建新数组的几种方式

1. for循环, push(比较简单, 就不上代码了)

2.创建空数组,填充null,然后map: 

function createData() {
return new Array(1000)
.fill(null)
.map((v,i)=>({name: `name${i+1}`}))
}
console.log(createData())

3.Array.from+map

function createData() {
return Array.from({length: 1000})
.map((v,i)=>({name: `name${i+1}`}))
}
console.log(createData())

4.Array.from的第二个fn参数

function createData() {
return Array.from({length: 1000}, (v,i)=>({name: `name${i+1}`}))
}
console.log(createData())

5. Array.of(...数组或类数组)

eg: Array.of(1, 2, 4, 7) => [1, 2, 4, 7]; 想变成新数组, 再链式调用map就行了

6. 手写数据生成器:

function createValues(creator, length = 1) {return Array.from({ length }, creator)
}

1) 随机数据生成器:

const createRandomValues = (len) => createValues(Math.random, len)

// createRandomValues(10) // 10个随机数字组成的数组

2) 序列生成器

const createRange = (start, stop, step) => {const arr = createValues((_, i) => start + (i * step), Math.floor((stop - start) / step) + 1)return arr
}

但是上面在(stop - start) / step有余数时, stop没有打印出来, 因为不符合step的规律, 比如start为1,stop为99, step为3, 但是最后一个元素为97的时候就结束了:

//  [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97]

createRange(1, 99, 3);

而有的时候, 或者说大多数时候希望执行到最后一个元素, 可以判断arr[len -1]<stop的时候把stop的值push进去

const createRange = (start, stop, step) => {const arr = createValues((_, i) => start + (i * step), Math.floor((stop - start) / step) + 1)const len = arr.length// 如果最后一项小于stop的值, push一下stop的值if(arr[len -1]<stop) {arr.push(stop)}return arr
}

3) 生成对象数组

// 数据生成器:
function createUser(v, index) {return {name: `user-${index}`,//  0-100随机数字, >> 0 取整age: Math.random() * 100 >> 0}
}
// 生成10条对象数据的数组
const users = createValues(createUser, 10)

相关文章:

批量快捷创建新数组的几种方式

1. for循环, push(比较简单, 就不上代码了) 2.创建空数组,填充null,然后map: function createData() { return new Array(1000) .fill(null) .map((v,i)>({name: name${i1}})) } console.log(createData()) 3.Array.frommap function createData() { return Array.from…...

单目标应用:基于沙丁鱼优化算法(Sardine optimization algorithm,SOA)的微电网优化调度MATLAB

一、沙丁鱼优化算法 沙丁鱼优化算法(Sardine optimization algorithm,SOA)由Zhang HongGuang等人于2023年提出&#xff0c;该算法模拟沙丁鱼的生存策略&#xff0c;具有搜索能力强&#xff0c;求解精度高等特点。 沙丁鱼主要以浮游生物为食&#xff0c;这些生物包括细菌、腔肠…...

基于Halo搭建个人博客

准备 云服务器 安装Docker 开启8090端口 步骤 拉取Halo镜像 docker pull halohub/halo:2.1.0 制作容器并启动 docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.1.0 --halo.external-urlhttp://服务器ip:8090/ --halo.security.in…...

DPDK系列之三十一DPDK的并行机制简介

一、并行机制 什么是并行机制&#xff1f;这个很多开发者的眼中&#xff0c;其实是模糊的。可能说起来头头是道&#xff0c;但是细一查究竟&#xff0c;发现都是飘在空中的东西。在前面的“多核和多CPU编程”中&#xff0c;对并行机制已经进行了较深入的分析&#xff0c;这里只…...

【Java】复制数组的四种方式

1. System.arraycopy() 用来将一个数组的&#xff08;一部分&#xff09;内容复制到另一个数组里面去。 定义&#xff1a; void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);例&#xff1a; int[] arr1 { 1, 2, 3, 4, 5 }; int[] arr2 new…...

设计模式5、原型模式 Prototype

解释说明&#xff1a;使用原型实例指定待创建对象的类型&#xff0c;并且通过复制这个原型阿里创建型的对象 UML 结构图&#xff1a; 抽象原型&#xff08;Prototype&#xff09;&#xff1a;规定了具体原型对象必须实现的clone()方法 具体原型&#xff08;ConcretePrototype&…...

驱动挂载物理页代码示例

驱动挂载物理页代码示例 使用的实验环境为32位xp系统在101012分页模式下 此实验用于测试对分页模式的掌握程度 代码思路如下&#xff1a; 获取目标进程的cr3在目标进程中申请新的物理页拆分新申请的物理页的线性地址通过差分出的内容获取pte将pte写入到要挂载的线性地址的p…...

【新版】系统架构设计师 - 层次式架构设计理论与实践

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 层次式架构设计理论与实践考点摘要层次式体系结构概述表现层框架设计MVC模式MVP模式MVVM模式使用XML设计表现层表现层中UIP设计思想 中间层架构设计业务逻辑层工作流设计业务逻辑层设计 数据访问层…...

大数据Flink(九十):Lookup Join(维表 Join)

文章目录 Lookup Join(维表 Join) Lookup Join(维表 Join) Lookup Join 定义(支持 Batch\Streaming):Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。…...

Docker方式创建MySQL8的MGR集群

目录 一、MGR简述二、安装环境及要求2.1 系统版本2.2 网络要求 三、安装步骤3.1 创建容器3.2 创建用户3.3 安装插件3. 4 启动集群3.5 加入集群 四、查看集群查看 MGR 组成员列表查看 MGR 组成员拓扑信息 五、其他说明集群配置要求集群配置限制集群相关变量和状态 一、MGR简述 …...

问 ChatGPT 关于GPT的事情:扩展篇

一、GPT预训练有什么节省显存和算力的技巧吗&#xff1f;我如何拿四块A100完成175B模型的预训练&#xff1f; 对于GPT预训练&#xff0c;有一些技巧可以帮助节省显存和算力。以下是一些常用的技巧&#xff1a; 按批次截断&#xff1a;在较长的文本序列中&#xff0c;将其切割…...

Spring Boot 集成 MinIO 实现文件上传、下载和删除

MinIO 是一种开源的对象存储服务&#xff0c;它基于云原生架构构建&#xff0c;并提供了高性能、易于扩展和安全的存储解决方案。 一.安装和配置 MinIO 服务器 为了演示方便&#xff0c;本文采用Windows安装 1.在官方网站下载MinIO 安装文件&#xff0c;地址&#xff1a;ht…...

Polygon Miden交易模型:Actor模式 + ZKP => 并行 + 隐私

1. 引言 前序博客&#xff1a; Polygon Miden&#xff1a;扩展以太坊功能集的ZK-optimized rollupPolygon Miden zkRollup中的UTXO账户混合状态模型 Polygon Miden为&#xff1a; ZK-optimized rollup由客户端生成证明完善Polygon ZK系列解决方案&#xff0c;致力于成为网络…...

Java流的体系结构(二)

文章目录 一、对象流的使用1.概念2.序列化机制3.代码案例&#xff1a;序列化过程&#xff1a;将内存中的java对象保存到磁盘中或通过通络传输出去4.反序列化&#xff0c;将磁盘文件中的对象还原为内存中的一个java对象 二、RandomAccessFile的使用1.说明2.代码案例 提示&#x…...

python计算阶层

阶层&#xff08;Factorial&#xff09;是指从1到一个正整数n的所有整数相乘&#xff0c;即n! 1 2 3 … n。下面是Python代码计算阶层&#xff1a; def factorial(n):"""计算阶层:param n: 正整数:return: n的阶层"""if n 1 or n 0:retu…...

前端架构师之01_ES6_基础

1 初识ES6 简单来说&#xff0c;ECMAScript是JavaScript语言的国际标准&#xff0c;JavaScript是实现ECMAScript标准的脚本语言。 2011年&#xff0c;ECMA国际标准化组织在发布ECMAScript 5.1版本之后&#xff0c;就开始着手制定第6版规范。 存在的问题&#xff1a;这个版本…...

银行卡号识别

# 导入工具包 from imutils import contours import numpy as np import argparse import cv2 import myutils# 设置参数 # ap = argparse.ArgumentParser() # ap.add_argument("-i", "--image", required=True, # help="path to input image")…...

【Idea】idea、datagrip设置输入法

https://github.com/RikudouPatrickstar/JetBrainsRuntime-for-Linux-x64/releases/tag/jbr-release-17.0.6b829.5https://github.com/RikudouPatrickstar/JetBrainsRuntime-for-Linux-x64/releases/tag/jbr-release-17.0.6b829.5 下载后解压并重命名为 jbr, 然后替换对应 ide…...

回归预测 | MATLAB实现基于RF-Adaboost随机森林结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于RF-Adaboost随机森林结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于RF-Adaboost随机森林结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于RF-Adaboost随机森林结合…...

最小生成树 | 市政道路拓宽预算的优化 (Minimum Spanning Tree)

任务描述&#xff1a; 市政投资拓宽市区道路&#xff0c;本着执政为民&#xff0c;节省纳税人钱的目的&#xff0c;论证是否有必要对每一条路都施工拓宽&#xff1f; 这是一个连问带答的好问题。项目制学习可以上下半场&#xff0c;上半场头脑风暴节省投资的所有可行的思路&a…...

nRF54L15实现更快的处理速度

Nordic的nRF54L15系统级芯片相比前代nRF52系列&#xff0c;不仅速度更快、功耗更低&#xff0c;还配备了更丰富的外设&#xff0c;” 刘佳杭继续说道&#xff0c;“基于Arm Cortex-M33处理器的HJ-N54L_SIP不仅能处理更复杂的应用程序&#xff0c;同时显著提升了处理速度。系统级…...

MacBook Pro用户必看:5分钟搞定StarUML破解(M1/M2芯片专用指南)

M1/M2芯片MacBook高效配置StarUML全流程指南 当你在M1/M2芯片的MacBook上第一次打开StarUML时&#xff0c;可能会遇到各种兼容性问题。作为一款强大的UML建模工具&#xff0c;StarUML在ARM架构下的表现确实有些水土不服。但别担心&#xff0c;经过多次实践&#xff0c;我总结出…...

Adafruit MAX44009库详解:超低功耗环境光传感器驱动与工程实践

1. 项目概述Adafruit MAX44009 库是专为 Analog Devices&#xff08;原 Maxim Integrated&#xff09;推出的 MAX44009 环境光传感器设计的 Arduino 兼容驱动库。该库封装了 IC 通信、寄存器配置、自动量程切换、中断管理及光照度&#xff08;lux&#xff09;换算等底层逻辑&am…...

thermalmonitordDisabler:突破iOS性能枷锁的终极方案——彻底解决过热降频问题指南

thermalmonitordDisabler&#xff1a;突破iOS性能枷锁的终极方案——彻底解决过热降频问题指南 【免费下载链接】thermalmonitordDisabler A tool used to disable iOS daemons. 项目地址: https://gitcode.com/gh_mirrors/th/thermalmonitordDisabler 当你在直播过程中…...

Chatterbox:多语言语音合成的开源解决方案

Chatterbox&#xff1a;多语言语音合成的开源解决方案 【免费下载链接】chatterbox Open source TTS model 项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox Chatterbox是一款由Resemble AI开发的开源语音合成&#xff08;TTS&#xff09;模型&a…...

Proteus仿真C51单片机:用汇编实现一个简易的脉冲计数器(附完整代码和电路图)

Proteus仿真C51单片机&#xff1a;用汇编实现一个简易的脉冲计数器&#xff08;附完整代码和电路图&#xff09; 当你第一次接触单片机编程时&#xff0c;可能会被各种寄存器、中断和端口配置搞得晕头转向。今天&#xff0c;我们就用一个实实在在的脉冲计数器项目&#xff0c;带…...

Django CORS Headers终极配置指南:Vue、React、Angular前端框架完美集成方案

Django CORS Headers终极配置指南&#xff1a;Vue、React、Angular前端框架完美集成方案 【免费下载链接】django-cors-headers Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS) 项目地址: https://gitcode.com/gh_mirrors/d…...

从TJA1050到SIT1050T:手把手教你搞定CAN收发器外围电路与PCB布局避坑

从TJA1050到SIT1050T&#xff1a;手把手教你搞定CAN收发器外围电路与PCB布局避坑 在汽车电子和工业控制领域&#xff0c;CAN总线因其出色的抗干扰能力和可靠性成为首选通信协议。但许多工程师在设计CAN收发器外围电路时&#xff0c;常因忽视数据手册中的关键细节而导致通信不稳…...

StructBERT情感分类模型部署架构设计

StructBERT情感分类模型部署架构设计 1. 引言 情感分类是自然语言处理中的核心任务之一&#xff0c;能够自动分析文本中的情感倾向&#xff0c;在用户评价分析、舆情监控、智能客服等场景中发挥着重要作用。StructBERT作为基于Transformer架构的预训练模型&#xff0c;在中文…...

如何永久保存微信聊天记录?免费开源工具WeChatMsg完整指南

如何永久保存微信聊天记录&#xff1f;免费开源工具WeChatMsg完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...