需求情景一:

<!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数据各种操作方法总结~~欢迎大家留言板补充哦~~的更多相关文章

  1. 11、js 数组详细操作方法及解析合集

    js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...

  2. 一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝)

    背景 在日常开发中,偶尔会遇到需要复制对象的情况,需要进行对象的复制. 由于现在流行标题党,所以,一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝) 理解 首先就需要理解 js 中的数据类型 ...

  3. JS 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  4. js数组常用操作方法小结(增加,删除,合并,分割等)

    本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shi ...

  5. JS数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  6. scroll pagination.js数据重复加载、分页问题

    scroll pagination.js数据重复加载.分页问题 解决办法 参考资料: http://blog.csdn.net/dyw442500150/article/details/1753242 ...

  7. post/get in console of JSarray/js 数组详细操作方法及解析合集

    https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...

  8. template.js 数据渲染引擎

    template.js 数据渲染引擎 template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板 <script id="tpl& ...

  9. m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中

    m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...

  10. Knockout.js 数据验证之插件版和无插件版

    本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你 ...

随机推荐

  1. 二十、Pod的存储之Configmap

    Pod 的存储之Configmap 一.Configmap介绍 ​ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.Co ...

  2. Linux之Docker-01

    一.镜像基础命令 1.docker version  [root@DY-Ubuntu-01 ~]#docker version               #查看 Docker 版本 2.docker ...

  3. 来啦来啦|开源 * 安全 * 赋能 - .NET Conf China 2022

    大会介绍 .NET Conf China 2022 是面向开发人员的社区峰会,延续 .NET Conf 2022 的活动,庆祝 .NET 7 的发布和回顾过去一年来 .NET 在中国的发展成果,它是由 ...

  4. 聊聊kafka

    两个月因为忙于工作毫无输出了,最近想给团队小伙伴分享下kafka的相关知识,于是就想着利用博客来做个提前的准备工作了:接下来会对kafka做一个简单的介绍,包括利用akf原则来解析单机下kafk的各个 ...

  5. 嵌入式-C语言基础:指针偏移打印数组

    在C语言中,数组名代表数组中首元素的地址,所以,下面两句获取数组的首地址是等价的: #include<stdio.h> int main() { int a[5]={1,2,3,4,5}; ...

  6. Ant Design Pro:Layout 组件——嵌套布局

    在   BasicLayout.jsx   文件中修改 <ProLayout layout="topmenu" className="chenshuai2144&q ...

  7. mindxdl--common--type.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common this file ...

  8. leetcode学习记录2.13

    [13] 罗马数字转整数 import java.util.HashMap; import java.util.Map; /* * * [13] 罗马数字转整数 * * https://leetcod ...

  9. DP?

    杨斌涵//aad69d38 分治优化DP 分治优化1D/1D dp 对于一类 \[f(x) = \min_{k = y}^{x - 1} w(l, r) \] 即所有 \(w(l,r)\) 事先已知, ...

  10. 是时候考虑升级 JDK 17 了

    Spring,作为 Java EE 的事实规范,在2022年11月16日发布了最新的 6.0.0 GA 版本.这个版本是框架后续新生代的初始版本,拥抱持续创新的 OpenJDK 和 Java 生态.新 ...