日常JS数据各种操作方法总结~~欢迎大家留言板补充哦~~
需求情景一:
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body>
<script>
// 需求如下,我們需要使用result的屬性對應值,同時修改部分屬性的屬性名
// 使用ObjA和resultult共有屬性+ObjB和result共有屬性
// 去掉result中無用屬性
const result = {
need1: '這個屬性值是有用的1',
need2: '這個屬性值是有用的2',
need3: '這個屬性值是有用的3',
need4: '這個屬性值是有用的4',
need5: '這個屬性值是有用的5',
need61: '這個屬性值是有用的6,屬性名需要修改成need6',
need71: '這個屬性值是有用的7,屬性值需要修改成need7',
need81: '這個屬性值是有用的8,屬性值需要修改成need8',
need91: '這個屬性值是有用的9,屬性值需要修改成need9',
other1: '這個屬性沒什麼用',
other2: '這個屬性沒什麼用',
}
const ObjA = {
need1: '這個屬性是有用的1',
need2: '這個屬性是有用的2',
need3: '這個屬性是有用的3',
need4: '這個屬性是有用的4',
need5: '這個屬性是有用的5',
unwanted1: '不需要這個屬性1',
unwanted2: '不需要這個屬性2',
unwanted3: '不需要這個屬性3',
}
// 此函數用來對照修改Rresult對象的屬性
const ObjB = {
need61: 'need6',
need71: 'need7',
need81: 'need8',
need91: 'need9',
}
// 現在有下面三種實現方法,我們來做一下對比~
let resultArr1 = []
let resultArr2 = []
let resultArr3 = []
Object.keys(result).forEach(_ => {
if (ObjA[_] || ObjB.hasOwnProperty(_)) {
resultArr1.push((ObjB[_] ? ObjB[_] : _) + ':' + (result[_] || ''))
}
})
resultArr2 = Object.keys(result).map(_ => {
if (ObjA[_] || ObjB.hasOwnProperty(_)) {
return (ObjB[_] ? ObjB[_] : _) + ':' + (result[_] || '')
}
}).filter(_ => _)
Object.keys(result).reduce((init, _) => {
if (ObjA[_] || ObjB.hasOwnProperty(_)) {
init.push((ObjB[_] ? ObjB[_] : _) + ':' + (result[_] || ''))
}
return init
}, resultArr3)
console.log('resultArr1', resultArr1)
console.log('resultArr2', resultArr2)
console.log('resultArr3', resultArr3)
// 0: "need1:這個屬性是有用的1"
// 1: "need2:這個屬性是有用的2"
// 2: "need3:這個屬性是有用的3"
// 3: "need4:這個屬性是有用的4"
// 4: "need5:這個屬性是有用的5"
// 5: "need6:這個屬性是有用的6,屬性名需要修改成need6"
// 6: "need7:這個屬性是有用的7,屬性值需要修改成need7"
// 7: "need8:這個屬性是有用的8,屬性值需要修改成need8"
// 8: "need9:這個屬性是有用的9,屬性值需要修改成need9"
</script>
</body> </html>
日常JS数据各种操作方法总结~~欢迎大家留言板补充哦~~的更多相关文章
- 11、js 数组详细操作方法及解析合集
js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...
- 一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝)
背景 在日常开发中,偶尔会遇到需要复制对象的情况,需要进行对象的复制. 由于现在流行标题党,所以,一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝) 理解 首先就需要理解 js 中的数据类型 ...
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- js数组常用操作方法小结(增加,删除,合并,分割等)
本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shi ...
- JS数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- scroll pagination.js数据重复加载、分页问题
scroll pagination.js数据重复加载.分页问题 解决办法 参考资料: http://blog.csdn.net/dyw442500150/article/details/1753242 ...
- post/get in console of JSarray/js 数组详细操作方法及解析合集
https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...
- template.js 数据渲染引擎
template.js 数据渲染引擎 template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板 <script id="tpl& ...
- m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中
m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...
- Knockout.js 数据验证之插件版和无插件版
本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你 ...
随机推荐
- Vue ref 和 v-for 结合(ref 源码解析)
前言 Vue 中组件的使用很方便,而且直接取组件实例的属性方法等也很方便,其中通过 ref 是最普遍的. 平时使用中主要是对一个组件进行单独设置 ref ,但是有些场景下可能是通过给定数据渲染的,这时 ...
- ARM TrustZone白皮书部分阅读
嵌入式系统安全的一些解决方法及缺陷 外部硬件安全模块:在主SoC之外包含一个专用的硬件安全模块或可信元件,e.g. 手机的SIM卡.隔离仅限于可以从非易失性存储器运行的相对静态程序 内部硬件安全模块: ...
- Day2:基本的Dos命令
打开CMD的方式 开始+系统+命令提示符(右键以管理员身份运行可拿到最高权限) Win键+R 输入 cmd打开控制台(推荐使用) 桌面上按住shift+鼠标右键,打开powershell窗口 文件搜索 ...
- Archlinux + Dwm 配置流程
本着学习C的态度来了解dwm,本身作为一个i3wm的追崇者,与dwm会擦出怎么样的火花呢? 下载安装dwm archlinuxcn源配置 编辑/etc/pacman.conf文件,添加bfsu的arc ...
- 【初赛】CSP 2020 第一轮(初赛)模拟记录
感觉初赛不过关,洛谷上找了一套没做过的来练习. 顺便写了详细的题解. 试题用时:1h 单项选择: 第 1 题 十进制数 114 的相反数的 8 位二进制补码是: A.10001110 B.100011 ...
- 读书笔记《A Philosophy of Software Design - John Ousterhout 软件设计哲学》
软件设计哲学这本书很薄,值得一读.这本书将大家平时碰到的很多软件问题从更深刻的层面进行了抽象分析,同时又给出了具体的解决方案.可以说既有理论高度,又能贴近实践. 但针对软件问题,这本书并没有提出太多与 ...
- 云原生之旅 - 14)遵循 GitOps 实践的好工具 ArgoCD
前言 Argo CD 是一款基于 kubernetes 的声明式的Gitops 持续部署工具. 应用程序定义.配置和环境都是声明式的,并受版本控制 应用程序部署和生命周期管理都是自动化的.可审计的,并 ...
- NLP手札1. 金融信息负面及主体判定方案梳理&代码实现
这个系列会针对NLP比赛,经典问题的解决方案进行梳理并给出代码复现~也算是找个理由把代码从TF搬运到torch.Chapter1是CCF BDC2019的赛题:金融信息负面及主体判定,属于实体关联的情 ...
- 修改msi文件
前言 msi文件是一个安装包文件,可以看做一个数据库,其中包含很多资源,例如图片,配置文件,可执行文件exe等等. 我想要把修改过 exe可执行文件提交到msi文件中,那么就需要知道msi文件的构成, ...
- js文字无限循环向上滚动
html代码 <div id="scroll"> <div id="con1"> <p style="color: re ...