`
robinqu
  • 浏览: 90276 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaScript 对象Object和数组Array

阅读更多
Object、Array是JS的引用型基本属性

枚举Object中的属性:
function DisplayPropertyNames(obj) {
    var names = "";
    for(var name in obj) names += name + "\n";
    alert(names);
}


检查对象中是否有某个属性并赋值:

方法1
// If o has a property named "x", then set it
if ("x" in o) o.x = 1;


方法2
// If the property x exists and is not undefined, set it.
// !== and === distinguish between undefined and null
if (o.x !== undefined) o.x = 1;



串联数组元素
引用
The Array.join() method converts all the elements of an array to strings and concatenates them.


var a = [1, 2, 3];    // Create a new array with these three elements
var s = a.join();       // s == "1,2,3"


可以指定用什么字符来串联:
s = a.join(", ");   // s == "1, 2, 3"


也就是String.spilt()的逆向方法

数组反向
引用
The Array.reverse() method reverses the order of the elements of an array and returns the reversed array.


var a = new Array(1,2,3);     // a[0] = 1, a[1] = 2, a[2] = 3
a.reverse();              // now a[0] = 3, a[1] = 2, a[2] = 1
var s = a.join();             // s == "3,2,1"


数组排序
引用
Array.sort() sorts the elements of an array in place and returns the sorted array.


默认通过以字母表进行排序。也可以提供排序的函数。

引用
To sort an array into some order other than alphabetical, you must pass a comparison function as an argument to sort().

This function decides which of its two arguments should appear first in the sorted array.

If the first argument should appear before the second, the comparison function should return a number less than zero.

If the first argument should appear after the second in the sorted array, the function should return a number greater than zero.

And if the two values are equivalent (i.e., if their order is irrelevant), the comparison function should return 0.


把判定函数当作参数传递给Array.sort(),该函数也有两个函数,例如a,b。
如果a在b的前面,则返回一个小于0的数;
如果a在b的后面,则返回一个大于0的数;
如果两则等效,则返回0。

var a = [33, 4, 1111, 222];
a.sort();                 // Alphabetical order:  1111, 222, 33, 4
a.sort(function(a,b) {    // Numerical order: 4, 33, 222, 1111
           return a-b;    // Returns < 0, 0, or > 0, depending on order
       });


数组的连接
引用
The Array.concat() method creates and returns a new array that contains the elements of the original array on which concat() was invoked, followed by each of the arguments to concat().


var a = [1,2,3];
a.concat(4, 5)          // Returns [1,2,3,4,5]
a.concat([4,5]);        // Returns [1,2,3,4,5]
a.concat([4,5],[6,7])   // Returns [1,2,3,4,5,6,7]
a.concat(4, [5,[6,7]])  // Returns [1,2,3,4,5,[6,7]]


数组的子集
引用
The Array.slice() method returns a slice, or subarray, of the specified array. Its two arguments specify the start and end of the slice to be returned. The returned array contains the element specified by the first argument and all subsequent elements up to, but not including, the element specified by the second argument.


Arrat.slice()接受两个参数,其返回值是原数组的子数组,由下标为第一个参数,一直到下标为(第二个参数-1)的元素组成

var a = [1,2,3,4,5];
a.slice(0,3);    // Returns [1,2,3]
a.slice(3);      // Returns [4,5]
a.slice(1,-1);   // Returns [2,3,4]
a.slice(-3,-2);  // Returns [3]


数组的切割
引用
The Array.splice() method is a general-purpose method for inserting or removing elements from an array. splice() modifies the array in place; it does not return a new array, as slice() and concat() do.

该方法会修改原数组,如果只提供一个参数,那么从下标值为参数的元素(包括这个元素)在原数组中开始删除,该方法返回删除的那些元素组成的数组
如果提供两个参数,那么第一个参数作用不变,第二个参数则限定删除元素的个数

var a = [1,2,3,4,5,6,7,8];
a.splice(4);    // Returns [5,6,7,8]; a is [1,2,3,4]
a.splice(1,2);  // Returns [2,3]; a is [1,4]
a.splice(1,1);  // Returns [4]; a is [1]



如果提供两个以上的参数,那么从第三个参数开始就是执行了删除操作之后,将第三个参数之后的所有元素,插入到下标为第一个参数的元素的后方

var a = [1,2,3,4,5];
a.splice(2,0,'a','b');  // Returns []; a is [1,2,'a','b',3,4,5]
a.splice(2,2,[1,2],3);  // Returns ['a','b']; a is [1,2,[1,2],3,3,4,5]


用数组实现Stack
引用
The push() and pop() methods allow you to work with arrays as if they were stacks.


var stack = [];       // stack: []
stack.push(1,2);      // stack: [1,2]     Returns 2
stack.pop();             // stack: [1]            Returns 2
stack.push(3);        // stack: [1,3]     Returns 2
stack.pop();             // stack: [1]            Returns 3
stack.push([4,5]);        // stack: [1,[4,5]]  Returns 2
stack.pop()             // stack: [1]       Returns [4,5]
stack.pop();           // stack: []        Returns 1


用数组实现只能在前端进出的顺序表
引用
The unshift() and shift() methods behave much like push() and pop(), except that they insert and remove elements from the beginning of an array rather than from the end.


var a = [];            // a:[]
a.unshift(1);          // a:[1]         Returns: 1
a.unshift(22);         // a:[22,1]      Returns: 2
a.shift();                // a:[1]         Returns: 22
a.unshift(3,[4,5]);    // a:[3,[4,5],1] Returns: 3
a.shift();                // a:[[4,5],1]   Returns: 3
a.shift();                // a:[1]         Returns: [4,5]
a.shift();                // a:[]          Returns: 1


将数组转换为字符串
引用
An array, like any JavaScript object, has a toString() method. For an array, this method converts each of its elements to a string (calling the toString() methods of its elements, if necessary) and outputs a comma-separated list of those strings. Note that the output does not include square brackets or any other sort of delimiter around the array value.

这是一个对每个元素调用.toString()的过程,并将结果用逗号间隔返回

[1,2,3].toString()          // Yields '1,2,3'
["a", "b", "c"].toString()  // Yields 'a,b,c'
[1, [2,'c']].toString()     // Yields '1,2,c'
分享到:
评论

相关推荐

    《JavaScript高级编程》学习笔记之object和array引用类型

    JavaScript是一种基于原型的脚本语言,它具备灵活而强大的对象和数组引用类型。对象和数组是引用类型,这意味着它们存储的是引用的值而不是实际的数据值。在JavaScript中,对象和数组是用于存储和操作数据的关键构建...

    JavaScript对象经典小册 chm

    本小册"JavaScript对象经典小册 chm"深入探讨了JavaScript中的核心概念——对象和数组,旨在帮助开发者更好地理解和掌握这些基础知识。 一、JavaScript对象 1. 对象概述:JavaScript对象是一种数据结构,它由键值对...

    详谈js中数组(array)和对象(object)的区别

    因为本质上,关联数组创建的其实是Array对象的属性。 在JavaScript中,推荐使用对象字面量的方式来创建对象,因为这样代码更加直观易懂。而在处理复杂数据结构时,对象的灵活性更高,因为对象可以存储不同类型的...

    JavaScript对象拷贝与Object.assign用法实例分析

    为了实现一个完整的深拷贝,可以自定义一个函数,递归地遍历并复制所有属性,包括嵌套的对象和数组。 ```javascript function deepCopy(obj) { if (obj === null || typeof obj !== 'object') return obj; let ...

    详解JavaScript对象和数组

    下面我们将深入探讨JavaScript中的对象和数组。 1. **对象(Object)** - **封装**:JavaScript对象允许我们将数据和功能(即属性和方法)封装在一起。例如,我们可以创建一个`box`对象,其中包含`name`、`age`属性...

    对象和数组

    JavaScript中的对象和数组是两种关键的数据结构,它们与基本数据类型如字符串和数字有显著区别。对象是一个命名值的集合,这些值可以是各种类型的,包括原始类型和复杂类型。对象内部的值通过属性名来访问,这些属性...

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

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

    JavaScript对象与数组参考大全

    在这份"JavaScript对象与数组参考大全"中,我们将深入探讨JavaScript的核心概念——对象和数组,它们是JavaScript编程的基础,也是理解和编写复杂应用的关键。 一、JavaScript对象 1. 对象定义:JavaScript对象是一...

    JavaScript判断对象和数组的两种方法

    但是,typeof 不能区分对象和数组,因为它们都会返回 "object"。因此,在需要区分对象和数组的情况下,我们不推荐使用 typeof。 在处理接口数据时,开发者应根据实际情况选择合适的方法来判断数据类型。如果接口...

    JS对象与数组参考大全

    在JavaScript(JS)编程语言中,对象和数组是两种核心的数据结构,它们在构建复杂的程序逻辑和数据存储中起着至关重要的作用。本参考大全将深入探讨这两种数据类型及其常用方法,帮助开发者更好地理解和运用。 ### ...

    javascript对象大全

    "JS对象与数组参考大全.txt"可能是一份文本格式的文档,专注于对象和数组的比较和使用,包括两者的异同、转换方法以及在实际编程中的应用技巧。 通过学习这个压缩包中的文档,开发者不仅能深入理解JavaScript对象的...

    JavaScript每天必学之数组和对象部分

    JavaScript中的对象和数组是两种基本的数据结构,它们在日常编程中扮演着重要角色。对象,作为JavaScript的核心特性,是无序的键值对集合,可以存储任何类型的数据,包括基本类型和引用类型。所有JavaScript对象都...

    JSON (JavaScript Object Notation).zip

    JSON主要有两种基本结构:对象(Object)和数组(Array)。对象是由花括号 `{}` 包围的一组键值对,键与值之间用冒号 `:` 分隔,各个键值对之间用逗号 `,` 分隔。数组由方括号 `[]` 包围,元素之间同样用逗号 `,` ...

    JavaScript视频教程-5.数组和对象(1)

    同样,对于对象,ES6引入了Object.keys()、Object.values()和Object.entries()方法,分别用于获取对象的所有键、值和键值对数组。 在实际开发中,理解和熟练掌握JavaScript的数组和对象是至关重要的,它们是构建...

    node-test-constructs:用于测试目的JavaScript对象和数组

    用于测试目的JavaScript对象和数组。 正在安装 npm install --save-dev test-constructs 快速开始 const tc = require ( 'test-constructs' ) console . log ( tc . rndObject ( ) ) // &lt;= A random object ...

    潜说js对象和数组

    代码如下: /* 数组和对象 【JavaScript 权威指南 第五版】 */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = {}; var obj = {name: ‘maxthon’}; ...

Global site tag (gtag.js) - Google Analytics