js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用
目录
- 问题来源
- js数组
- 数组通过下标赋值
- 数组通过push赋值
- 总结
- loopback4
- 安装
- 创建项目
- 项目启动
- 访问项目
- 创建HelloController
- 运行访问HelloController
问题来源
今天在开发过程中,遇到一个很奇怪的问题,由于公司微服务的部分网关使用loopback4
。
LoopBack4是IBM主导的一个高度可扩展的开源的Node.js框架,基于流行的Express框架和TypeScript语言编写。
因而这里涉及到JavaScript的代码。
现在有一个特殊的场景,需要封装设备信息和放置点信息。
现有设备数组和放置点数组,外循环是设备数组,内循环是设备放置点数组,如果设备放置点Id等于放置点的Id,就向新数组Array中添加包含设备信息和放置点信息的json对象,但无论如何新数组的长度始终小于设备数组的长度,按道理说如果设备的放置点Id不等于放置点的Id,那么就将该位置存储为null,长度始终是相等的。
于是,使用下标添加值和push添加值的两种方式,去探讨这个问题:
js数组
使用如下几种方式声明js数组:
//第一种var array=new Array();//第二种:规定了数组的长度为2 var arr2 = new Array(2);//第三种 var arr3 = new Array(true,123,false);//第四种var arr4 = [false,"aaa",123];
数组通过下标赋值
@get('/v1/test')async test(): Promise<any> {var array=new Array(0);let arrayLength = 5;for (var i =0 ;i<arrayLength;i++){for (var j =3;j<8;j++){if (i == j){array[i] ={"index":i}}}}return {"arrayLength":array.length,"array":array};}
返回结果为
{"arrayLength": 5,"array": [null,null,null,{"index": 3},{"index": 4}]
}
从返回结果可以看出,如果外循环的值不等于内循环的值,外循环对应的下标指向null,数组长度为外循环数组的长度,由于array
的下标不是从0开始,而是从相等处开始,即i=3
,因而,下标为0,1,2的值为null
数组通过push赋值
@get('/v1/test')async test(): Promise<any> {var array=new Array(0);let arrayLength = 5;for (var i =0 ;i<arrayLength;i++){for (var j =3;j<8;j++){if (i == j){array.push({"index":i})}}}return {"arrayLength":array.length,"array":array};}
返回结果
{"arrayLength": 2,"array": [{"index": 3},{"index": 4}]
}
push的返回数组的长度为,其真实存储的对象只有两个,因为外循环和内循环只有3和4相等。
总结
因而,如是外循环和内循环同时存在,只有相等时才填充新数组时,下标形式的数组长度要大于等于push形式的数组,因为下标形式的数组可能存储null值。
loopback4
安装
运行命令,全局安装:
npm i -g @loopback/cli
创建项目
运行如下指令创建项目
lb4 app
输入项目相关的信息,等待安装完成:
Project name: loopback_demo
Project description: Demo
Project root directory: loopback-demo
Application class name: LoopbackDemoApplication
Select features to enable in the project Enable tslint, Enable prettier, Enable mocha, Enable loopbackBuild, Enable vs
code, Enable repositories, Enable services
项目启动
安装完成后,进入程序路径,运行如下指令:
npm start
等待程序启动成功。
访问项目
程序启动成功后,打开浏览器输入http://127.0.0.1:3000/ping
,可以看到以下信息:
{"greeting": "Hello from LoopBack","date": "2019-01-23T05:48:58.850Z","url": "/ping","headers": {"host": "127.0.0.1:3000","connection": "keep-alive","upgrade-insecure-requests": "1","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36","dnt": "1","accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","accept-encoding": "gzip, deflate, br","accept-language": "zh-CN,zh;q=0.9,en;q=0.8"}
}
创建HelloController
运行命令,输入controller名称,回车会自动执行,等执行完毕。
lb4 controller
执行完毕后进入创建的controller文件,粘贴以下内容:
import {get} from '@loopback/rest';export class HelloController {@get('/hello')hello(): string {return 'Hello world!';}
}
运行访问HelloController
运行npm start
,等待程序启动成功。
程序启动成功后,打开浏览器输入http://127.0.0.1:3000/hello
,可以看到信息Hello world!
。
js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用相关推荐
- php 数组简写形式,php 获取美国50个州的名称、简写对应数组用法示例
这篇文章主要为大家详细介绍了php 获取美国50个州的名称.简写对应数组用法示例,具有一定的参考价值,可以用来参考一下. 美国的州简写和标题对应数组,例如 AK 转换成Alaska,感兴趣的小伙伴,下 ...
- 获取数组名称 php,php 获取美国50个州的名称、简写对应数组用法示例
搜索热词 美国的州简写和标题对应数组,例如 AK 转换成Alaska,感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 经测试代码如下: /** * 美国50个州的名称.简写对应数 ...
- php获取p标签的值,js使用html()或text()方法获取设置p标签的显示的值
html()方法 此方法类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容.要获取某个元素的内容,可以这样: var p_html = $(" ...
- html 获取p 属性值,js使用html()或text()方法获取设置p标签的显示的值
html()方法可以用来读取或者设置某个元素中的HTML内容,text()方法可以用来读取或者没置某个元素中的文本内容 html()方法 此方法类似于JavaScript中的innerHTML属性,可 ...
- js设置input输入框为必选输入框,判断空格或null值
设置input为输入框为必选输入框,即判空: <form action="demo-form.php">Username:<span style="co ...
- 请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...
第一种方法是使用分类给字典添加一个类方法,将字典中的null值全部替换为空字符串,代码如下: .h文件代码: @interface NSDictionary (DeleteNull) + (id)ch ...
- js判断数组,对象,是否为空,是否含有某个值,判断数组中对象是否有某个值
一.数组 1.判断数组是否为空 arr.length let arr = []; if (arr.length == 0){console.log("数组为 ...
- Vue由本地js中存放的url地址获取图片
Vue由本地js中存放的url地址获取图片 对象必须放在js中(而不是json里面,json没有require).如果是在json中,需要采用其他方式去获取 注意:url地址必须用这种形式,有requ ...
- php 二维数组根据键值合并二维数组_3分钟短文 | PHP 根据值移除数组元素,哪个方法最简单?...
引言 PHP 数组操作,之前我们讲了如何根据值,进行多维数组的排序.今天说一说,如何根据值,进行数组元素的删除. 学习时间 假设有一个一维数组,单纯的数字数组.为了简化问题,我们假设数组元素没有重复项 ...
最新文章
- kubernetes环境下私有仓库搭建
- 设计模式的六大原则(个人笔记)
- a as as big rat_你知道填空中as的这个变态用法吗?
- 水瓶座和什么座最配:天秤座,双子座,狮子座
- flutter友盟分享_flutter中友盟插件开发使用
- C语言实现数组Array(附完整源码)
- React性能优化:immutability-helper
- 前端学习(1257):基于promise处理ajax请求
- unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍
- fast-planner 安装
- 原版win7集成usb3.0驱动_windows7的不老传说,十代U安装win7教程
- 仿XP系统的任务栏菜单
- 双二极管(BAT54S)在电路中起什么作用? 钳位和保护
- Easy2game使用
- 西门子estop指令_西门子PLC故障安全编程——ESTOP1指令
- 【遥感图像预处理方法】
- VS2013及MFC下载
- html怎样改成png格式,如何将jpg图片转换成png格式 又怎样把png转换成jpg
- 巴特沃斯(Butterworth)滤波器(一)
- 基于FPGA的超声成像算法的硬件设计
热门文章
- iphone 录音与播放同时 音量问题
- 换个姿势看 hooks,灵感来源组合和 HOC 模式下逻辑视图分离新创意
- Mac os区别_Photoshop和PS有什么区别
- 微信小程序自定义组件的基本使用
- Android 流式布局
- 判断当前的浏览器是pc还是移动设备,如果是手机,就跳转到对应手机端网站
- 两招教你苹果12隐藏主界面应用图标「iphone技巧」
- 数字经济,安全为本 |《数据防泄露技术指南》盛大发布
- mysql用macbookair,Macbook air OS X Yosemite10.10.5安装MYSQL
- Java内部类序列化