遍历js中对象的属性和值的实例


Posted in Javascript onNovember 21, 2016

今天优化项目时,遇到了关于”遍历js中对象的属性和值”的需求。之所以会有这个需求,是因为要做一个局部刷新表格内容的js插件。刚开始我去网上荡了一个js分页插件,但是智商实在捉急,搞了半天没搞出来!后来就怒了,干脆自己写一个好了。结果就遇到了这个问题!

问题:通过遍历属性名数组,获取对象的属性值失败

刚开始的错误代码如下:

for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var j=0;j<filedList.length;j++){
    dataLine+="<td>"+dataList[i].filedList[j]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}

首先说一下,dataList里面放的是对象数组;filedList里面放的是对象的属性字段名数组。刚开始是这样想的,遍历dataList,每次都可以拿到一个对象,然后嵌套for循环,遍历filedList,每次拿到它的一个属性值,然后拼凑成表格。

比如:dataList[0]就是一个Emp对象,而Emp里面有id,name等属性。平常我们就可以通过dataList[0].id得到当前Emp对象的id值。但是如果遍历属性字段数组的话,就不能通过这种方式dataList[0].filedList[0]。这并不是说filedList[0]里面没有获取到值,因为我通过alert(filedList[0])已经得到了这个id值为1。那么为什么获取失败呢?因为它是去找Emp对象里面的一个叫做filedList[0]的属性了!Emp对象里面当然没有这个属性了,所以就理所应当的获取失败了,那么我们又该如何获取对象的属性值呢?

---------------------------------------------

解决方案:用“加强for循环”去遍历

正确代码如下:

for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var filedName in dataList[i]){
    dataLine+="<td>"+dataList[i][filedName]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}

解决思路:既然dataList[i]是一个对象,那么我每次就可以拿到这个对象的属性名,然后通过dataList[i][filedName],即对象[属性名]的方式得到这个属性的属性值。

参考:JS获得一个对象的所有属性和方法

function displayProp(obj){  
  var names="";    
  for(var name in obj){    
    names+=name+": "+obj[name]+", "; 
  } 
  alert(names); 
}

由此看来,js的功能还是很强大的!

以上这篇遍历js中对象的属性和值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
js替代copy(示例代码)
Nov 27 Javascript
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
jQuery写fadeTo示例代码
Feb 21 Javascript
AngularJS快速入门
Apr 02 Javascript
JavaScript实现瀑布流布局
Jun 28 Javascript
vue 不使用select实现下拉框功能(推荐)
May 17 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 Javascript
JavaScript数据结构链表知识详解
Nov 21 #Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 #Javascript
Node.js测试中的Mock文件系统详解
Nov 21 #Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 #Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 #Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 #Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 #Javascript
You might like
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
Python中的装饰器用法详解
2015/01/14 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python3生成手写体数字方法
2018/01/30 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python第三方库学习笔记
2020/02/07 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
浅析Python 条件控制语句
2020/07/15 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
影视艺术学院毕业生自荐信
2013/11/13 职场文书
迟到检讨书400字
2014/01/13 职场文书
四议两公开实施方案
2014/03/28 职场文书
销售顾问工作计划书
2014/08/15 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python