我们有时在处理数组时会扩展内置对象Array,但这样会有一些问题,现在举例解决一下。
var array = [1,2,3,4]; for(var i in array){ print(array(i)); } // 1 // 2 // 3 // 4
现在我们扩展了内置对象Array,
Array.prototype.add = function(){};
现在我们再次执行上面的 for..in 循环,会得到如下结果:
// 1 // 2 // 3 // 4 // function(){}
这个不是咱们想要的结果,如果对其进行sum操作就会出现,莫名其妙的错误,并且难以调试出来,但是问题总是会有解决方法的,继续往下看。
for(var i = 0,len = array.length;i<len;i++){ print(array(i)); } // 1 // 2 // 3 // 4
这种方式最重要的是它通过访问array的length属性来完成循环(数组内部元素的访问),而不是访问array对象上的其他属性(即:function,其下标是“add” 是一个属性)。
这样就可以得到我们预期的结果了,但通过这个例子看到,我们除非必要尽量的不要扩展内置对象,同时也给继承链添加了“烙印”,这样其实就是给bug提供了温床。
通过这个例子我的收获是:温故而知新,之前看到这个的时候并没有太大的体会与理解,现在遇到了问题,然后返回头来看到这个例子,问题解决了同时也加深了对数组操作的理解。
其实数组的操作没有想象中的那么简单,只是看似简单(增,删,改,查),实则不易啊,数组操作值得好好的研究,最后望大家看过这篇博客有所收获。
相关推荐
### Javascript数组循环遍历之forEach详解 #### 1. JavaScript数组循环遍历基础 在JavaScript中,循环遍历数组是常见的操作,传统的方式是使用for循环,例如: ```javascript var count = arr.length; for(var i ...
在JavaScript中,数组遍历和字符串拼接是常见的操作,特别是在处理用户界面展示或数据处理时。本示例中,我们关注的是如何遍历数组并将其中的字符串元素用逗号连接起来,同时如何获取循环中的最大索引或最后一个索引...
js数组数据和对象数据做比较,并改变数组的值
扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...
ASP.NET中后台C#数组与前台JS数组交互 在ASP.NET中,后台C#数组与前台JS数组的交互是一个常见的问题。前台JS数组需要从后台C#数组中获取数据,而后台C#数组则需要从数据库中获取数据。下面我们将详细介绍如何实现这...
通过上面的分析,我们可以看到 `phparr_to_jsarr` 函数是一个非常实用的工具,可以方便地将 PHP 数组转换为 JavaScript 数组。这在实际项目中非常有用,特别是在需要跨语言数据交换的情况下。然而,值得注意的是,在...
无刷新实现上传文件时的进度条. 调用upfile函数。任务执行完后调用changekey函数。更改背景调用_syspro。
Javascript 数组及其操作 Javascript 数组是一种基本的数据结构,用于存储和操作多个值。数组是一种复杂的数据类型,可以存储不同的数据类型,如数字、字符串、对象等。 创建数组 在 Javascript 中,可以使用三种...
在JavaScript中,数组是一种基础的数据结构,它用于存储有序的数据集合。处理数组数据时,常常需要对数组中的每个元素进行操作,这通常通过数组的遍历来实现。数组遍历是指按照一定的顺序访问数组中的每个元素,以便...
在JavaScript中,数组的深拷贝是一个常见的需求,它涉及到数据结构的复制,尤其是在处理复杂对象和嵌套数据时。深拷贝与浅拷贝不同,浅拷贝只是复制引用,而深拷贝会创建一个新的对象,包含原始数组的所有元素,并...
JavaScript中的数组循环是一种常见的操作,而在Google的array.js程序中,一种优化的循环方式被提出。这种方式使用`while`循环,但与我们通常所见的循环有所不同,它使用`i--`作为循环条件。让我们深入理解这个循环的...
### MATLAB中数组循环赋值详解 #### 知识点概览 本文主要讲解了如何在MATLAB中使用循环结构对数组进行循环赋值的操作。通过本篇内容的学习,读者不仅能够掌握基本的循环赋值方法,还能深入了解其背后的原理及实际...
本资料"Javascript数组操作整理"聚焦于JavaScript中的数组操作,旨在帮助开发者更好地理解和掌握相关知识。 1. 创建数组: JavaScript提供了多种创建数组的方式,如字面量语法`var arr = [元素1, 元素2, ...]`,或...
尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...
JS数组追加数组没有现成的函数,这么多年我已经习惯了a.push.apply(a, b);这种自以为很酷的,不需要写for循环的写法,一直也没遇到什么问题,直到今天我要append的b是个很大的数组时才遇到了坑。
在JavaScript中,数组是一种常用的数据结构,用于存储和操作一系列有序的数据。ArrayUtil是一个实用的JavaScript...此外,分析源码还可以帮助我们理解面向对象编程、函数式编程以及JavaScript数组操作的内部工作原理。
在JavaScript编程中,数组操作是常见的任务之一,特别是在处理数据集合时。本示例中,我们探讨的是如何处理包含重复元素的数组,并将其整合成一个新的结构。这个问题可以通过一个名为`sortArr`的函数来解决,它接收...
### 环形数组循环问题解析 #### 一、问题背景及定义 在计算机科学领域,数组是一种常用的数据结构,而“环形数组”是指数组的末尾与开头相连形成环状的一种特殊数组形式。本篇文章将围绕环形数组中的循环问题展开...