JS里的居民们7-对象和数组转换
编码
学习通用的数据用不同的数据结构进行存储,以及相互的转换
对象转为数组:
var scoreObject = {
"Tony": {
"Math": 95,
"English": 79,
"Music": 68
},
"Simon": {
"Math": 100,
"English": 95,
"Music": 98
},
"Annie": {
"Math": 54,
"English": 65,
"Music": 88
}
}
如上有一个用来存储学习成绩的对象,编写一个函数,将其转为如下的二维数组
var scoreArray = [
["Tony", 95, 79, 68],
……
];
数组转为对象:
var menuArr = [
[1, "Area1", -1],
[2, "Area2", -1],
[3, "Area1-1", 1],
[4, "Area1-2", 1],
[5, "Area2-1", 2],
[6, "Area2-2", 2],
[7, "Area1-2-3", 4],
[8, "Area2-2-1", 6],
];
如上有一个用来存储多级菜单数据的数组,编写一个函数,将其转为如下的对象
var menuObject = {
"1": {
name: "Area1",
subMenu: {
"3": {
name: "Area1-1"
},
"4": {
name: "Area1-2",
subMenu: {
"7": {
name: "Area1-2-3"
}
}
}
}
}
……
}
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们9-对象和数组转换</title>
</head> <body>
<script>
//对象转数组
var scoreObject = {
"Tony": {
"Math": 95,
"English": 79,
"Music": 68
},
"Simon": {
"Math": 100,
"English": 95,
"Music": 98
},
"Annie": {
"Math": 54,
"English": 65,
"Music": 88
}
}
var arr1 = [];
for (var i in scoreObject) {
var arr2 = [];
arr2.push(i);
for (var j in scoreObject[i]) {
arr2.push(scoreObject[i][j]);
}
arr1.push(arr2);
}
console.log(arr1);
//数组转对象
var menuArr = [
[1, "Area1", -1],
[2, "Area2", -1],
[3, "Area1-1", 1],
[4, "Area1-2", 1],
[5, "Area2-1", 2],
[6, "Area2-2", 2],
[7, "Area1-2-3", 4],
[8, "Area2-2-1", 6],
]; var menuObject = {};
menuArr.forEach((current, index) => {
if (current[2] == -1) {
menuObject[current[0]] = {
"name": current[1],
"subMenu": {}
}
}
if (current[2] == 1) {
menuObject["1"]["subMenu"][current[0]] = {
"name": current[1],
"subMenu": {}
}
}
if (current[2] == 2) {
menuObject["2"]["subMenu"][current[0]] = {
"name": current[1],
"subMenu": {}
}
}
if (current[2] == 4) {
menuObject["1"]["subMenu"]["4"]["subMenu"][current[0]] = {
"name": current[1],
"subMenu": {}
}
}
if (current[2] == 6) {
menuObject["2"][ "subMenu"]["6"]["subMenu"][current[0]] = {
"name": current[1],
"subMenu": {}
}
}
})
console.log(menuObject);
</script>
</body> </html>
JS里的居民们7-对象和数组转换的更多相关文章
- JS里的居民们6-数组排序
编码 var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140]; 将上面数组分别按从大到小以及从小到大进行排序后在console中输出 var arr = ['a ...
- JS里的居民们5-数组(栈)
编码1(栈顶在最右) 练习如何使用数组来实现栈,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关进栈.退栈.获取栈 ...
- JS里的居民们4-数组((堆)队列
编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取 ...
- JS中如何判断对象是对象还是数组
JS中如何判断对象是对象还是数组 一.总结 一句话总结:typeof Array.isArray === "function",Array.isArray(value)和Objec ...
- js 中 json.stringfy()将对象、数组转换成字符串
json.stringfy()将对象.数组转换成字符串 var student = new Object(); student.name = "Lanny"; student.ag ...
- JavaScript 系列--JavaScript一些奇淫技巧的实现方法(二)数字格式化 1234567890转1,234,567,890;argruments 对象(类数组)转换成数组
一.前言 之前写了一篇文章:JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳 https://www.mwcxs.top/page/746 ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- JS里访问纯数字ID对象时出现问题
<p id="1">Hello</p> 例如上面的例子,id为纯数字会出错.此时用js去获取该对象会报错,查找不到该对象. 原因:必须是字母开头,或是下划线 ...
- js中如何返回一个存放对象的数组?
我这边需要返回后台数据的形式是这样的 {[ { ", }, { ", }, { ", }, { ", }, { ", } ]} 页面是通过循环去获取每 ...
随机推荐
- python3之循环
本节主要介绍python中循环语句的用法以及其他一些语句exec等,文章后面附有之前的文章: 循环语句 if是值执行一次而循环时在条件满足情况下可以执行相同语句多次:使用循环可以轻松实现序列,词典等的 ...
- curl命令上传下载文件
下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件 ...
- 自己动手——快速搭建Android应用服务器
1.服务器搭建方案选择 我们用:MySQL + Java Web + Tomcat + Volley 来实现我们的服务器. 其中:①MySQL是开源的数据库软件:②Java Web是遵循Java语言风 ...
- 更改Android编译软件版本(make/gcc/bision)
一.make版本 1.下载make的压缩包 ftp://ftp.gnu.org/gnu/make/ 2.解压,安装 cd make-x.x ./configuration sh build.sh su ...
- JS实现跨域请求数据--CORS
https://www.cnblogs.com/cjw-ryh/p/7674038.html?utm_source=debugrun&utm_medium=referral
- $bzoj1011-HNOI2008$ 遥远的行星 其他
题面描述 直线上\(N\)颗行星,\(X=i\)处有行星\(i\),行星\(j\)受到行星\(i\)的作用力,当且仅当\(i<=A_j\).此时J受到作用力的大小为\(F_{i\to j}=\f ...
- js 常见事件
- Python 实现flatten功能
from collections import Iterable def flatten(items): for x in items: if isinstance(x, Iterable) and ...
- jQuery练习 | 复选框及编辑模式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- putty访问虚拟机
从宿主机中用putty连接虚拟机中的Ubuntu Server. putty默认使用ssh方式连接,这需要在Ubuntu Server中安装ssh服务.使用命令sudo apt-get install ...