`
这些年
  • 浏览: 399770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js 对象操作

    博客分类:
  • js
 
阅读更多

对象:转自:http://www.ddjava.com/blog/blog.html?blogId=489

 1:输出object的属性及内容

function allPrpos(obj) { 
    // 用来保存所有的属性名称和值
    var props = "";
    // 开始遍历
    for(var p in obj){ 
        // 方法
        if(typeof(obj[p])=="function"){ 
            //obj[p]();
        }else{ 
            // p 为属性名称,obj[p]为对应属性的值
            props += p + "=" + obj[p] + ";  ";
        } 
    } 
    // 最后显示所有的属性
    alert(props);
}

 

对象定义 
var obj = new Object(); 
 
var obj = {}; 

添加属性 
obj.name = 'tom'; 
obj.ses='man'; 

添加方法 
obj.say = function(){ 
alert('22222'); 
} 

调用 obj.say(); 

修改属性 
obj.name='jack'; 

删除属性 
obj.name = undefined; 
obj.say = undefined; 
其name、say属性仍存在obj对象中,怎样才能在obj中移除name属性呢? 
delete obj.name; 


在添加、修改或者删除属性时,和引用属性相同,也可以采用方括号([])语法: 
obj[“name”]=”tom”; 
使用这种方式还有一个额外的特点,就是可以使用非标识符字符串作为属性名称,例如 
标识符中不允许以数字开头或者出现空格,但在方括号([])语法中却可以使用: 
obj[“my name”]=”tom”; 
需要注意,在使用这种非标识符作为名称的属性时,仍然要用方括号语法来引用: 
alert(obj[“my name”]); 

 

对象与数组的区别(转自:http://lgr310-163-com.iteye.com/blog/745861

比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢? 

        数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。 

        当然,数组和对象的另一个区别是,数组中的数据没有“名称”(name),对象中的数据有“名称”(name)。但是问题是,很多编程语言中,都有一种叫做“关联数组”(associative array)的东西。这种数组中的数据是有名称的。 

比如在javascript中,可以这样定义一个对象: 

             var a={"城市":"北京","面积":16800,"人口":1600}; 

但是,也可以定义成一个关联数组: 

Java代码   收藏代码
  1. a["城市"]="北京";  
  2.   
  3. a["面积"]=16800;  
  4.   
  5.  a["人口"]=1600;  



          在Javascript语言中,关联数组就是对象,对象就是关联数组。这一点与php语言完全不同,在php中,关联数组也是数组。 

比如运行下面这段javascript: 

  

Java代码   收藏代码
  1. var a=[1,2,3,4];  
  2.   
  3.    a['foo']='Hello World';  
  4.   
  5.    alert(a.length);  



最后的结果是4,也就是说,数组a的元素个数是4个。 

但是,运行同样内容的php代码就不一样了: 

 

Java代码   收藏代码
  1. $a=array(1,2,3,4);  
  2.   
  3.   $a["foo"]="Hello world";  
  4.   
  5.   echo count($a);  



最后的结果是5,也就是说,数组a的元素个数是5个。 

遍历方法: 
一: 

Java代码   收藏代码
  1. var news = { id:'101', title:'这是标题', content:'这里是内容'}  
  2.       for(var n in news){  
  3.           document.write(n+'---'+news[n]+'<br>')  
  4.       }  


二: 

Java代码   收藏代码
  1. var news = {  
  2. 0:{id:'101', title:'这是标题111', content:'这里是内容111'},  
  3. 1:{id:'101', title:'这是标题222', content:'这里是内容222'},  
  4. 2:{id:'101', title:'这是标题333', content:'这里是内容333'}  
  5. }  
  6.       for(var n in news){  
  7.           document.write(n+'---'+news[n].title+'<br>')  
  8.       }  
  9. /////调用值的方法 news.id 或 news['id']  



字符转成对象 

Java代码   收藏代码
  1. s   =   '{"address":"","email":"123@123.com","name":"test5","id":"6"};';    
  2.   eval('o='+s);    
  3.   alert(o.name);    
  4. 或:  
  5. data=eval('(' +s+ ')');  



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

 对象是一种复合数据类型. 
  创建对象最简单的方法是你的javascript代码中包含对象直接量,也可以通过运算符new创建。 

Java代码   收藏代码
  1. var empty = {}; // An object with no properties  
  2. var point = { x:0, y:0 };  
  3. var circle = { x:point.x, y:point.y+1, radius:2 };  
  4. var homer = {  
  5.     "name""Homer Simpson",  
  6.     "age"34,  
  7.     "married"true,  
  8.     "occupation""plant operator",  
  9.     'email': homer@example.com  
  10. };  
  11. var a = new Array(); // Create an empty array  
  12. var d = new Date(); // Create an object representing the current date and time  
  13. var r = new RegExp("javascript""i"); // Create a pattern-matching object  


  创建对象后,我们可以通过"."运算符,在对象中创建新属性、引用已有属性、设置属性值等。 
  

Java代码   收藏代码
  1. var book = new Object();     //创建对象  
  2.   book.title="JavaScript: The Definitive Guide";  
  3.   book.chapter1=new Object();   //作为对象属性的,嵌套对象  
  4.   book.chapter1.title = "Introduction to JavaScript";  
  5.   book.chapter1.pages = 11;  
  6.   book.chapter2 = { title: "Lexical Structure", pages: 6 };  
  7.               alert("Outline: " + book.title + "\n\t" +  
  8.     "Chapter 1 " + book.chapter1.title + "\n\t" +  
  9.     "Chapter 2 " + book.chapter2.title);                  
  10.  从对象中读取一些属性.  


在上例中,需注意,可以通过把一个值赋给对象的一个新属性来创建它. 
  在JavaScript语句中提到过用for/in语句可以遍历对象的属性和方法。 
  用in运算符检查属性是否存在.如: 
if ("x" in o) o.x = 1;//如果存在就设置其属性值为1. 
如果这样写:o.x=undefined //属性x是存在的,但是没有值.我常常会这样写:if (o.x !== undefined) o.x = 1; 
另外,!= =常代替!=.!= =和= = = 区别在于undefined和null,不用区分时可以省略,如:if (o.doSomething) o.doSomething(); 
  删除属性:delete book.chapter2; 
  作为关联数组的对象:object.property 和object["property"]是等价的. 
  通用对象的属性和方法 
   constructor属性:var d = new Date();d.constructor == Date; // true 
   由于构造函数定义了一个对象的类,所以属性constructor在有助于确定给定对象的类型.如,可以使用如下代码来确定一个未知对象的类型:if ((typeof o == "object") && (o.constructor == Date)),也可以用instanceof运算符:if ((typeof o == "object") && (o instanceof Date)) 
  toString()方法:返回一个字符串,该字符串代表了调用它的对象的类型或值.当javascript需要将一个对象转换成字符串时就调用这个对象的toString()方法.例如当用"+"连接一个字符和一个对象时,或者把一个对象传递给alert()或document.write()方法时,就会调用toString(). 
  默认的toString()方法提供的信息并不多.例如下面的代码只能得到字符串"[object Object]":var s = { x:1, y:1 }.toString();所以许多类都定义了自己的toString()方法,例如,当一个数组被转换成一个字符串时,就得到一个数组元素列表,其中每个元素都被转换成了字符串,当一个函数被转换成字符串时,就会获得该函数的源代码.第九章将详细讲述. 
  toLocaleString()方法:返回该对象局部化的字符串表示.Oject类定义的默认toLocaleString()方法自身不做任何局部化,返回的结果与toString() 方法返回的完全相同,但是Object 类的子类则可能定义自己的toLocaleString()方法. 
  valueOf()方法:与toString()相似,当javascript需要将一个对象转换成字符串之外的原始类型(通常是数字)时,就需要调用它. 
  hasOwnProperty方法:如果对象局部定义一个非继承的属性,属性名是由一个字符串实际参数指定的,那么该方法将返回true,否则,它将返回false.如: 

Java代码   收藏代码
  1. var o = {};  
  2. o.hasOwnProperty("undef");     // false: 没有定义该属性  
  3. o.hasOwnProperty("toString"); // false: toString是一个继承属性  
  4. Math.hasOwnProperty("cos");    // true: Math对象有cos属性  


  propertyIsEnumerable()方法:如果对象定义了一个属性,属性名是由一个字符串实际参数指定的,而且该属性可以用for/in循环枚举出来,那么该方法返回true,否则,返回false.例如: 

Java代码   收藏代码
  1. var o = { x:1 };  
  2. o.propertyIsEnumerable("x");        // true: property exists and is enumerable  
  3. o.propertyIsEnumerable("y");        // false: property doesn't exist  
  4. o.propertyIsEnumerable("valueOf"); // false: property is inherited  


  isPrototypeOf()方法:如果调用对象是实际参数指定的对象的原型对象,该方法返回true,否则返回false.该方法的用途和对象的constructor属性相似.例如: 

Java代码   收藏代码
  1. var o = {}  
  2. Object.prototype.isPrototypeOf(o);        // true: o.constructor == Object  
  3. Object.isPrototypeOf(o);                  // false  
  4. o.isPrototypeOf(Object.prototype);        // false  
  5. Function.prototype.isPrototypeOf(Object); // true: Object.constructor==Function  


  数组方法: 
     join():可以把一个数组的所有元素都转换成字符串,然后再把它们连接起来,你可以指定一个可选字符串来分隔结果字符串中的元素.如果没有指定分隔字符串,那么可以使用逗号分隔元素. 
  reverse():将颠倒数组元素的顺序并返回颠倒后的数组.它在原数组上执行这一操作,也就是说,它并不 创建一个重排了元素的新数组,而是在已经存在的数组中对数组元素进行重排. 
  sort():是在原数组上对数组元素进行排序,返回排序后的数组.如果调用sort()时不传递给它参数,那么它将按照字母顺序对数组元素进行排序(如果必要的话,可以暂时将元素转成字符串以执行比较操作) 
  concat():能创建并返回一个数组.这个数组包含了调用concat()的原始数组的元素,其后跟随的是concat()的参数.如果其中有些参数是数组,那么它就将被展开,其元素将被添加到返回的数组中.但是要注意,concat()并不能递归地展开一个元素为数组. 
  slice():返回的是指定数组是一个片段. 
  splice():插入或删除数组元素的通用方法.它在原数组上修改数组. 
  push()和pop():使我们可以像使用栈那样来使用数组.方法push()可以将一个或多个新元素附加到数组的尾部.然后返回数组的新长度.方法pop()恰恰相反. 
  unshift()和shift():与push()和pop() 非常相似,只不过它们是在数组的头部进行元素的插入和删除,而不是在尾部进行元素的插入和删除. 
  toString()和toLocaleString():注意,在输出的结果中,数组值的周围没有方括号或者其他定界符. 
  数组附加:indexof()和lastIndexof(),forEach(),map(),filter() 

/////////////////// 

对象实例: 

Java代码   收藏代码
  1. <script>  
  2. var news ={  
  3.  1:{id:101,title:'这是标题1',content:'这里是内容1'},  
  4.  2:{id:102,title:'这是标题2',content:'这里是内容2'},  
  5.  3:{id:103,title:'这是标题3',content:'这里是内容3'},  
  6.  4:{id:104,title:'这是标题4',content:'这里是内容4'},  
  7.  jingdian:{101:'AAA',102:'BBB',103:'CCC',104:'DDD'}  
  8. }  
  9. var jingdian ={  
  10.  101:{1101:'天',1102:'地',1103:'东'},  
  11.  102:{2101:'天2',2102:'地2',2103:'东2'},  
  12.  103:{3101:'天3',3102:'地3',3103:'东3'}  
  13. }  
  14.   
  15. for (var n in news){  
  16.  if(n!='jingdian'){  
  17.   document.write(n+"--"+news[n].id+"--"+news[n].title+'----'+news[n].content+'======'+get_jingdian(news[n].id)+'=========<br>');  
  18.  }  
  19. }  
  20. document.write('<hr>');  
  21. document.write(news[1]['title']+'--');  
  22. document.write(news[1].title);  
  23. document.write('<hr>');  
  24.   
  25. for (var J in news['jingdian']){  
  26.  document.write(news['jingdian'][J]+'<br>');  
  27.    
  28. }  
  29. document.write('<hr>');  
  30.   
  31. function get_jingdian(id){  
  32.  //document.write(id);  
  33.  //alert('id:'+id);  
  34.  var str='';  
  35.  for (var j in jingdian){  
  36.   if(j==id){  
  37.    //alert(j+'----'+id);  
  38.    for (j2 in jingdian[id]){  
  39.     str+='<a href='+j2+'>'+jingdian[id][j2]+'('+j2+')</a> ';  
  40.    }  
  41.   }  
  42.  }  
  43.   
  44.   
  45. return str;  
  46. }  
  47.   
  48.   
  49. </script>  
分享到:
评论

相关推荐

    javascript对象的相关操作小结

    JavaScript中的对象是编程的核心概念,它们允许...JavaScript对象操作是JavaScript编程的基础,熟练掌握这些操作对于编写高效、易维护的代码至关重要。通过理解这些概念,你可以更好地构建动态网页和复杂的前端应用。

    JavaScript BOM操作 window对象的子级对象 示例代码

    JavaScript BOM操作 window对象的子级对象 示例代码JavaScript BOM操作 window对象的子级对象 示例代码JavaScript BOM操作 window对象的子级对象 示例代码JavaScript BOM操作 window对象的子级对象 示例代码...

    有关js对象的操作和遍历对象小练习带注释.html

    有关js对象的操作和遍历对象小练习带注释.html

    JavaScript获取自身对象

    总的来说,这篇博客可能涵盖了从基础的JavaScript对象操作到高级的反射和元编程概念,为开发者提供了一个全面了解如何在JavaScript中获取和操作对象的指南。通过学习这些内容,开发者能够编写出更加高效、灵活和可...

    JavaScript bom操作 window对象的方法 示例代码

    JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 ...

    JS数组中对象去重操作示例

    在JavaScript编程中,数组是常用的数据结构,而处理数组中的对象去重问题是一个常见的需求。在给定的示例中,我们看到一个包含多个对象的数组`tmp`,每个对象有`id`和`magicId`两个属性。下面将详细讨论如何实现这种...

    【JavaScript源代码】js对象的读取速度实例详解.docx

    #### 四、扩展内容:JS对象操作性能问题 **1. 字符串连接** - **问题**: 使用`str += "xxx"`的方式连接字符串会导致性能下降,特别是在处理较长字符串时,其时间复杂度接近指数级别。 - **解决方案**: 可以考虑...

    js 操作 frameset frame iframe对象

    JS 操作 Frameset、Frame、Iframe 对象 Frameset、Frame、Iframe 是 HTML 中的框架编程概念,它们可以将一个 HTML 页面分割成多个独立的区域,每个区域可以显示一个独立的 HTML 页面。JS 操作 Frameset、Frame、...

    js对象属性大全下载

    ### JavaScript对象属性详解 在深入探讨JavaScript对象属性之前,我们首先需要理解JavaScript是一种广泛应用于网页开发的编程语言,它能够使网页变得动态、交互性更强。JavaScript中的对象是其核心特性之一,几乎...

    JS中Json对象

    // 将JavaScript对象转换为JSON字符串 var jsonString = JSON.stringify(person); console.log(jsonString); // 将JSON字符串转换回JavaScript对象 var parsedPerson = JSON.parse(jsonString); console.log...

    JS 对象实例讲解和应用

    总结,JS对象是JS编程的基础,理解和掌握对象实例的创建、属性和方法、原型链及继承,能够帮助开发者更好地进行前端开发,无论是简单的数据操作,还是复杂的前端应用。通过不断的实践和学习,开发者可以运用JS对象...

    js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    在JavaScript编程中,获取对象和数组的属性键值(key)和对应值(value)是一项基本操作。本文将详细介绍如何实现这一功能,并提供相应的代码示例。 首先,我们需要理解JavaScript中的对象和数组。对象是一种键值对...

    js面向对象的操作

    ### JavaScript面向对象操作详解 JavaScript是一种基于原型的编程语言,其面向对象的特性与传统的类继承模型有所不同。本文将深入探讨JavaScript的面向对象操作,并通过一个具体的示例来加深理解。 #### 原型...

    JavaScript对象模型-执行模型

    ### JavaScript对象模型-执行模型详解 #### 一、基本数据类型 JavaScript作为一种广泛使用的脚本语言,在其设计之初便提供了一系列的基本数据类型,这些类型构成了JS语言的基础,并且是理解和运用JS的重要基石。 ...

    javascript常用对象及方法

    javascript常用对象及方法 javascript中有许多常用的对象和方法,了解这些对象和方法可以帮助我们更好地使用javascript。下面我们将详细介绍这些对象和方法。 一、窗口对象Window Window对象是javascript中的顶级...

    javascript面向对象框架

    MooTools提供了许多实用的工具和功能,比如Element、Fx、Events、Class等模块,这些模块使得开发人员能够轻松地处理DOM、动画效果、事件以及创建复杂的JavaScript对象。 1. **MooTools的Class系统**:MooTools的...

    javascript中数组、对象

    同时,许多工具如`lodash`和`underscore.js`提供了丰富的实用函数,如`_.forEach`、`_.map`、`_.find`等,用于简化数组和对象的操作。 **四、数组操作整理** 文档"Javascript数组操作整理.doc"可能包含了对数组...

    JS面向对象教程

    JavaScript对象可以通过点(`.`)或方括号(`[]`)两种方式访问其属性和方法。方括号语法提供了一种动态引用属性和方法的方式,允许使用变量作为属性名或方法名。例如: ```javascript var obj = {}; obj["property"] =...

    js面向对象

    JavaScript 面向对象编程是该语言中一种重要的编程范式,它允许开发者通过类和对象的概念来组织和管理代码。尽管JavaScript并没有像Java或C++那样的严格类机制,但仍然可以通过函数和原型来实现面向对象特性。 1. *...

    Xml表格转化为Js对象

    而JavaScript Object(Js对象)是JavaScript编程中常用的数据结构,它提供了键值对的方式来存储和操作数据。在处理大量结构化数据时,将XML转换为JS对象可以提高代码的可读性和执行效率,因为JS对象的操作通常比XML...

Global site tag (gtag.js) - Google Analytics