【JS】教你如何在对象内任意位置插入任意属性

如果你不知道我写这篇文章的目的是什么,那不妨想想这样一个场景

var obj = {a: "A",c: "C",d: "D"
}

我想在 a 属性后面添加属性 b ,使其成为以下对象格式

var obj = {a: "A",b: "B",c: "C",d: "D"
}

你会怎么做,将对象转成字符串然后截串操作?不不不,这样太麻烦了,而且非常不灵活(你如果是大佬可以这么干哦~)

在 JS 中数组操作很灵活,想办法将对象转换成数组

将对象转换成数组

// 将对象转换成数组
var arr = []
for (let i in obj) {let o = {};o[i] = obj[i]; //即添加了key值也赋了value值 o[i] 相当于o.name 此时i为变量arr.push(o)
}

打印 arr 会得到以下数组

[{ a: "A" },{ c: "C" },{ d: "D" }
]

现在就可以操作这个数组了

// 如果 b 属性不存在
if (!obj.hasOwnProperty("b"))) {// 在arr中索引为 1 的位置插入对象arr.splice(1, 0, { "b": "B" })
}

打印 arr 会得到以下数组

[{ a: "A" },{ b: "B" },{ c: "C" },{ d: "D" }
]

将数组转换成对象

// 将数组转换成对象
var result = {}
arr.forEach((item) => {result[Object.keys(item)[0]] = Object.values(item)[0]
})

打印 result 会得到以下对象

{a: "A",b: "B",c: "C",d: "D"
}

【JS】教你如何在对象内任意位置插入任意属性相关推荐

  1. input位置_3分钟短文 | PHP 数组任意位置插入新元素,你是怎么处理的?

    引言 接着我们这个系列的文章说.本文我们聊一聊 PHP 数组,如何在任意位置插入新元素.因为内置函数并没有提供类似 array_insert(&$array, $pos, $items) 的函 ...

  2. php 元素插入数组指定位置,数组任意位置插入元素,删除特定元素的实例

    如下所示: $ary = array( array('t'=>1,'y'=>2), array('t'=>2,'y'=>9) ); $t = array_splice( $ar ...

  3. go 数组任意位置插入数字类型的元素

    // 任意位置插入数字类型的元素 // @param slice []int 将指定元素插入的切片 // @param num int 指定元素 // @param index int 插入的指定位置 ...

  4. 教你给视频画面任意位置插入GIF图

    视频怎么添加GIF图片呢?如何在视频任意位置添加的呢?其实很简单.教你这个简单的剪辑方法.一起来试试吧. 准备工具: 视频素材及动图 下载一个视频剪辑高手 开始操作: 运行软件登录上,在多种功能上选择 ...

  5. 链表的三种插入方法(头插法,尾插法,任意位置插入)

    插入作为链表的四大基本操作之一(增删改查),通常都会借助插入的方法增添信息,这一部分为大家着重讲解插入法. 1.头插法 简而言之,就是从链表的头部进行一个插入,定义一个结构体指针的新节点,并且为这个新 ...

  6. [js高手之路]原型对象(prototype)与原型链相关属性与方法详解

    一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...

  7. 算法题之迷宫中任意位置走任意长度的所有路径查询【原创题,非官方题目】

    迷宫大家都知道是可以用通过dfs(深度优先算法)进行解决,现在问题如下:小明参加了一个迷宫游戏,这个游戏有这样一个规则:小明只能向上下左右方向任意走n步(可以走回头路),现在需要知道这任意的n步所能覆 ...

  8. C# 数组增加元素_C语言数组——任意位置插入一个元素

    前言 接着昨天的话题,我们再来看看向C语言的数组中随机插入一个元素的方法. 如果是在python向列表中随机添加元素,我们往往使用insert()的方法. l insert()的第一个参数是位置,第二 ...

  9. win32com word表格内指定位置插入数据

    import win32com.client import xlrd from tkinter import filedialog, messageboxdPath = filedialog.asko ...

最新文章

  1. Python面对对象编程——对象、类详解及实例
  2. 第10章 指针(五) 使用地址-------指针的引用
  3. 第四天 用户管理和服务管理
  4. python遍历文件夹下所有文件大小_python遍历文件夹读取文件大小 | 学步园
  5. vue 获取元素在浏览器的位置_JavaScript获取窗口位置和元素坐标(兼容版)
  6. 新手上路之Hibernate:第一个Hibernate例子
  7. Linux 下编译并安装配置 Qt
  8. Spring 框架基础(01):核心组件总结,基础环境搭建
  9. JS 网页自动加载js函数
  10. ios 持续获取定位 高德地图_iOS开发-- 高德地图的接入使用(1)定位
  11. 微服务鉴权_百度技术架构师总结:微服务架构之访问安全
  12. autojs多分辨率找透明图
  13. DSP(数字信号处理器)技术概要
  14. 图解大数据 | Spark机器学习(下)—建模与超参调优
  15. csgo账号连接服务器错误,csgo连接任意官方服务器失败怎么办
  16. 【反思】写在腾讯电话面试之后
  17. DirectX11 计时和动画
  18. 移动流量转赠给好友_手机包月流量用不完:教你如何转赠给好友使用
  19. 如何写一个仿真文件——testbench
  20. NC65 查询信用余额——客户信用联查、销售订单信用联查等

热门文章

  1. 村土地利用规划和村庄规划的区别和联系
  2. 豆瓣 为什么不用php,豆瓣网友是不是都疯了?
  3. 算术的c语言程序设计,C 程序设计:变量与算术表达式
  4. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...
  5. 用一个比特币买一辆Model3?马斯克血洗空头后,苹果也要跟?
  6. linux 获取文件父目录权限,使用setfacl实现子目录继承父目录权限
  7. SQL Server数据库--过滤数据
  8. Arm-Linux 移植 ssh
  9. Flink - allowedLateness
  10. NHibernate之映射文件配置说明