日常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 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你 ...
 
随机推荐
- 5.github操作
			
Github设置远程仓库 将我们github的https或者ssh远程仓库地址复制 git remote add https://xxxxxxxTest.git # 指定github仓库设置为远程 ...
 - 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
			
今天看到一篇文章中提到了一个好用的工具release-it.刚好可以用在我正在开发的vue3组件库.纸上得来终觉浅,绝知此事要躬行,说干就干,下面就介绍如何将release-it应用到实际项目中,让组 ...
 - AR人体姿态识别,实现无边界的人机交互
			
近年来,AR不断发展,作为一种增强现实技术,给用户带来了虚拟和现实世界的融合体验.但用户已经不满足于单纯地将某件虚拟物品放在现实场景中来感受AR技术,更想用身体姿势来触发某个指令,达到更具真实感的人机 ...
 - 虚拟机里网络连接的几种方式说明(桥接,NAT, 仅主机)
			
虚拟机里网络连接类型的选择: 桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上. NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信. 仅主机:虚拟 ...
 - Burpsuite(科学版)安装教程
			
前言 BurpSuite是一款用于攻击web 应用程序的集成平台,在安全圈被称作"抓包神器".本文主要讲解 BurpSuite破解版的安装教程. 配置环境变量 BurpSuite是 ...
 - 我要涨知识 —— TypeScript 常见面试题(一)
			
1.ts 中的 any 和 unknown 有什么区别? unknown 和 any 的主要区别是 unknown 类型会更加严格:在对 unknown 类型的值执行大多数操作之前,我们必须进行某种形 ...
 - K8S节点配置资源驱逐
			
#参考文章:https://www.cnblogs.com/zhangrui153169/p/15726165.html 当节点内存到达多少时.对节点的pod进行驱逐 [root@lecode-tes ...
 - jQuery漏洞复现整理
			
jQuery DOM-based XSS 免责声明: 本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无 ...
 - Arch Linux 的安装
			
Arch Linux 的安装 作者:Grey 原文地址: 博客园:Arch Linux 的安装 CSDN:Arch Linux 的安装 版本 Arch Linux:2022.07.01 VMware ...
 - hwlog----hwlog_adaptor.go
			
// Copyright(c) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package hwlog provides the ...