三种方法

var mapColumn = {
"vdoing" : "访问深度",
"_visitorNumber": "访问量",
"_pageViews": "浏览量",
"_jumpOutRate": "跳出率",
"_avgAccessTime": "平均访问时长",
"_allTargetConvRate": "转化率",
"_orderTotalPrice": "总收益" };

一、原生

var target=[];
var targetl=[];
for (var key in mapColumn) {
target.push(key);
targetl.push(mapColumn[key]);
}
console.log(target);
console.log(targetl);

二、Jquery

var m_list = [];
var m_lists = [];
var m_listall = [];
$.each(mapColumn,function(key,value){
m_list.push(key); //获取所有的key
m_lists.push(value); //获取所有的value
m_listall.push({ //获取拼接
title:key,
name:value
})
})
console.log(m_list);
console.log(m_lists);
console.log(m_listall);

三、ES6字符串拼接

<div class="part1"></div>
var data = [{
"vdoing" : "访问深度",
"_visitorNumber": "访问量",
"_pageViews": "浏览量",
"_jumpOutRate": "跳出率" },{
"vdoing" : "访问深度1",
"_visitorNumber": "访问量1",
"_pageViews": "浏览量1",
"_jumpOutRate": "跳出率1"
}]; for (var i = 0; i < data.length; i++) {
/*es6模板字符串*/
$(".part1").append(`<div>
<span title="${data[i].vdoing}">${data[i].vdoing}</span>
<span title="${data[i]._visitorNumber}">${data[i]._visitorNumber}</span>
<span title="${data[i]._pageViews}">${data[i]._pageViews}</span>
<span title="${data[i]._jumpOutRate}">${data[i]._jumpOutRate}</span>
</div>`);
}


从别的地方看到的不错的习题,实际工作中也常用到

一、从某数据库接口得到如下值:

{
rows: [
["Lisa", 16, "Female", "2000-12-01"],
["Bob", 22, "Male", "1996-01-21"]
],
metaData: [
{name: "name", note: ''},
{name: "age", note: ''},
{name: "gender", note: ''},
{name: "birthday", note: ''}
]
}

rows是数据,metaData是对数据的说明。现写一个函数,将上面的Object转化为期望的数组:

[
{name: "Lisa", age: 16, gender: "Female", birthday: "2000-12-01"},
{name: "Bob", age: 22, gender: "Male", birthday: "1996-01-21"},
]

答案:两种,for循环和reduce

var temparry = [];
var result = [];
for (var k = 0; k < data.metaData.length; k++) {
var a = data.metaData[k].name;
temparry.push(a);
}
for (var i = 0; i < data.rows.length; i++) {
var ob = {};
for (var j = 0; j < temparry.length; j++) { var name = temparry[j];
ob[name] = data.rows[i][j];
}
result.push(ob); }
console.log(result);
var result = data.rows.reduce(function(prev1, cur1) {
console.log('prev1:' + prev1);
console.log('cur1:' + cur1);
prev1.push(data.metaData.reduce(function(prev, cur, index) {
prev[cur.name] = cur1[index];
return prev;
}, {}))
return prev1;
}, []); //console.log(result);
//console.log(result[0]);
//console.log(result[1]);

二、数组

a = [
{id: 10001, name: "Lisa", age: 16},
{id: 10002, name: "Bob", age: 22},
{id: 10003, name: "Alice", age: 20},
];

数组

b = [
{id: 10001, gender: "Female"},
{id: 10002, name: "Bob King", birthday: "1996-01-22"},
{id: 10005, name: "Tom", birthday: "2000-01-01"},
];

写一个函数按id用b更新a,期望得到的结果为:

[
{id: 10001, name: "Lisa", age: 16, gender: "Female"},
{id: 10002, name: "Bob King", birthday: "1996-01-22", age: 22},
{id: 10003, name: "Alice", age: 20},
{id: 10005, name: "Tom", birthday: "2000-01-01"},
]

这个自己写吧,不附答案了

for循环遍历json(附习题及答案)的更多相关文章

  1. JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{&quot;options&quot;:&quot;[{

    JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options&q ...

  2. Vue之循环遍历Json数据,填充Table表格

    简单记一次Vue循环遍历Json数据,然后填充到Table表格中,展示到前端的代码: async getData(id) { const res = await this.$store.api.new ...

  3. 高效遍历匹配Json数据与双层for循环遍历Json数据

    工作中往往遇到这种情况,保留用户操作痕迹,比如用户选择过得东西,用户进入其它页面再返回来用户选择的的数据还在. 比如:1.购物车列表中勾选某些,点击任意一项,前往详情页,再返回购物车依旧需要呈现勾选状 ...

  4. 使用for in循环遍历json对象的数据

    使用for in遍历json对象数据,如果数据中的名称有为数字的话,只对正整数有效,那么先会输出为正整数的数据,后面其他的会按照原来数据中定义的顺序不变输出. 针对名称为数字的json对象数据进行测试 ...

  5. Json格式循环遍历,Json数组循环遍历

    Json格式数据如何遍历,这里我们可以用for..in实现 例如最简单的json格式 , 'handsome' : 'yes' }; for( var key in json1 ){ console. ...

  6. JS 循环遍历JSON数据

    JSON数据如:{"options":"[{/"text/":/"王家湾/",/"value/":/" ...

  7. juery中循环遍历json数组

    var dataList=[]; var stock0={stockcode:"007758",stockname:"商业政7",state:"1&q ...

  8. JS 循环遍历json

    第一  看看json的格式 { "employees": [ { "firstName":"Bill" , "lastName&q ...

  9. JS循环遍历JSON数据的方法

    JSON数据如:{"options":"[{/"text/":/"王家湾/",/"value/":/" ...

随机推荐

  1. linq学习(第二部分)

    8.匿名方法 (1)源起 在上面的例子中 为了得到序列中较大的值 我们定义了一个More方法 var d1 = new Predicate<int>(More); 然而这个方法,没有太多逻 ...

  2. Struts2基本总结

    现在Struts2慢慢退出舞台了,但是很多项目还需要用Struts2进行开发和维护,这里就简单的重新快速的掌握这门技术 Struts2的相关配置文件 * default.properties     ...

  3. server端并发聊天

    mul_server和mul_client实现了客户端发什么消息,服务器端回复什么消息 server_dialog和mul_client实现了客户端与服务器并发通信

  4. 高速网络下的http协议优化

    http协议是基于TCP协议,具备TCP协议的所有功能.但是与一般TCP的长连接不同的是http协议往往连接时间比较短,一个请求一个响应了事.但是总所周知,TCP协议除了具备可靠的传输以外,还有拥塞控 ...

  5. Ubuntu clion下载及激活

    1.下载 方法:去官网下载clion  https://www.jetbrains.com/clion/download/#section=linux 或者使用我上传的百度网盘链接: https:// ...

  6. go的单引号、双引号、反引号的区别

    Go语言的字符串类型string在本质上就与其他语言的字符串类型不同: Java的String.C++的std::string以及Python3的str类型都只是定宽字符序列 Go语言的字符串是一个用 ...

  7. MS-coco数据集下载及使用(转)

    先做个标记,改天研究下. 几个链接: MS coco数据集介绍及下载 Microsoft COCO 数据集 COCO Dataset 数据特点 COCO 数据集的使用

  8. Django自带的认证系统

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  9. CentOS 8上安装Docker

    前言 这几天,想玩玩docker,方便漏洞复现,我去学docker搭建了,感觉不错,挺方便的 安装步骤: 1.下载docker-ce的repo curl https://download.docker ...

  10. visio去除直线交叉处的歪曲

    1 问题描述 Visio画图时,两根直线交叉时,总是默认会出现一个跨线的标志,如下图所示: 2 解决办法 在2007前的版本,可以通过以下方式解决: 选中线条,然后菜单的格式->行为->连 ...