JS完毕求数组起初项到终止项之和的法子,JavaScript伪数组用法实例解析

By admin in 4858美高梅 on 2019年6月15日

本文实例讲述了JS完成求数组初始项到终止项之和的章程。分享给我们供我们参照他事他说加以调查,具体如下:

前言

看了一段时间关于js原型的文化,js的恢宏方法是依据原型的,如Array.prototype.XXXX就是给Array扩大XXX方法,然后数组都能应用那一个法子了。

本文实例讲述了JavaScript伪数组用法。分享给大家供我们参照他事他说加以调查,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS求数组之和</title>
</head>
<body>
<script >
Array.prototype.sum= function(l,r){
l=l==undefined ? 0 : l;
r=r==undefined ? this.length - 1 : r;
var s = 0;
for(var i = l;i <= r;i++){s+=this[i];}
return s;
}
var ar = new Array(1,3,4,-1,-2,3,4,-2,4);
console.log(ar.sum(0,2))
</script>
</body>
</html>

面试境遇多个主题材料:JS数组求和函数。笔者首先想开的正是数组循环。可是作者以为面试官问那个难点必然不是想考那几个热门的章程。当时敏感的自家依然想到了递归函数不断加和数组的项,可是折腾了悠久都没调好格局,事实申明那并不是最优解。最前边试官问笔者有未有见过reduce(),真木有哇。所以回来查资料,Array.reduce()是ES5新增的新属性,相似的还应该有Array.reduceRight()。

在目的数组里面常常有依照属性来拓展排序的,升序,降序的,于是本人就想写叁个近乎于C#里头的orderBy的法子,代码如下:

在Javascript中怎么着是伪数组?

运转效果图如下:

下文来计算一下数组求和的艺术。

复制代码 代码如下:

伪数组(类数组):不或许直接调用数组方法或期望length属性有怎么着独特的表现,但还可以够对确实数组遍历方法来遍历它们。

4858美高梅 1

最惨酷的措施:循环获取

Array.prototype.OrderByAsc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
for (var k = 0; k < this.length; k++) {
if (func(this[i]) < func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}
Array.prototype.OrderByDesc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
JS完毕求数组起初项到终止项之和的法子,JavaScript伪数组用法实例解析。for (var k = 0; k < this.length; k++) {
if (func(this[i]) > func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}

1.一级的是函数的 argument参数,
2.像调用getElementsByTagName,document.childNodes之类的,它们都回来
NodeList对象都属于伪数组。

更加多关于JavaScript相关内容感兴趣的读者可查阅本站专项论题:《JavaScript数组操作手艺总计》、《JavaScript排序算法计算》、《JavaScript数据结构与算法技术总计》、《JavaScript数学运算用法总括》、《JavaScript遍历算法与本事总结》、《JavaScript查找算法手艺总计》及《JavaScript错误与调度本领总计》

由此for循环一项项地加和。看代码:

调用的办法如下:

这正是说什么样将伪数组转化为正式数组?

愿意本文所述对我们JavaScript程序设计有所支持。

Array.prototype.sum = function (){
 var result = 0;
 for(var i = 0; i < this.length; i++) {
  result += this[i];
 }
 return result;
};

[1,4,7,2,10].sum(); // 24

复制代码 代码如下:

能够选择Array.prototype.slice.call(fakeArray)将数组转化为真正的Array
对象。

您大概感兴趣的稿子:

  • JavaScript常用字符串与数组扩充函数小结
  • javascript
    Array数组对象的恢弘函数代码
  • js完成prototype扩张的办法(字符串,日期,数组扩展)
  • javascript框架统一筹算读书笔记之数组的增添与修补
  • js数组方法扩充达成数组总结函数
  • 编写制定js扩大方法推断多个数组中是或不是包括有个别成分
  • 恢宏js对象数组的OrderByAsc和OrderByDesc方法完成思路
  • JS的数组的强大实例代码
  • javascript数组的扩充完结代码集结
  • 求js数组的最大值和最小值的多样艺术
  • 分享JS数组求和与求最大值的办法
  • JavaScript学习笔记之数组求和措施

使用reduce方法

var arr = [{ name: ‘aaa’, grade: 20 }, { name: ‘ccc’, grade: 30 }, {
name: ‘bbb’, grade: 40 }];
var orderArr = arr.OrderByDesc(function (a) {
return a.grade;
});

举个例证,利用伪数组完结不定参数求和难题.

利用reduce主意,能够写几个数组求和的sum方法。

然后输出一下,看一下结出吗:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>伪数组</title>
</head>
<script>
  function add(){
    var sum=0;
    console.log(arguments);
    for(var i=0;i<arguments.length;i++){
      sum +=arguments[i];
    }
    return sum;
  }
 console.log(add(1,2,5,8));
</script>
<body>
</body>
</html>

reduce()主意接收三个函数作为累加器,数组中的每一种值(从左到右)开头滑坡,最终为一个值。

复制代码 代码如下:

运营结果:

reduce的语法:

for (var i = 0; i < orderArr.length; i++) {
document.write(orderArr[i].name);
}

4858美高梅 2

array.reduce(callback[, initialValue]);

自己js新手,要是有哪些主张吗的,直接留言,互相调换一下

将伪数组转化为正式数组

callback函数接受4个参数:previousValue(上次调用回调再次来到的值)、currentValue(当前被拍卖的元素)、index(索引)以及数组自己(第一遍调用
callback的率先个参数),试行数组中各样值的函数。

你也许感兴趣的篇章:

  • JavaScript常用字符串与数组扩展函数小结
  • javascript
    Array数组对象的扩张函数代码
  • js完结prototype扩展的主意(字符串,日期,数组扩充)
  • javascript框架规划读书笔记之数组的扩大与修补
  • js数组方法扩大达成数组总计函数
  • 编辑js扩展方法判定二个数组中是或不是带有有个别成分
  • JS的数组的扩充实例代码
  • javascript数组的恢弘完成代码群集
  • 求js数组的最大值和最小值的多样格局
  • 分享JS数组求和与求最大值的方法
  • JavaScript学习笔记之数组求和章程
  • JS达成求数组发轫项到终止项之和的章程【基于数组扩展函数】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>伪数组</title>
</head>
<script>
  function add(){
    var sum=0;
    console.log(arguments instanceof Array);//可以判断下此时是不是真正数组,返回值为false;
    console.log(arguments);//此时打印的是传入的参数1,2,5,8
    var arguments=Array.prototype.slice.call(arguments);//将伪数组转化为标准数组
    arguments.push(10);//此时就可以调用标准数组的方法
    console.log(arguments instanceof Array);//可以判断下此时是不是真正数组,返回值为true;
    console.log(arguments);//此时打印的是传入的参数,push之后的数组1,2,5,8,10
    for(var i=0;i<arguments.length;i++){
      sum +=arguments[i];
    }
    return sum;
  }
 console.log(add(1,2,5,8));
</script>
<body>
</body>
</html>

initialValue参数可选,表示起首值;initialValue参数若钦赐,则作为最初使用的previous值,假诺缺省,则利用数组的首先个要素作为previous初始值,同时current今后排一位。

运营结果:

Array.prototype.sum = function (){
 return this.reduce(function (partial, value){
  return partial + value;
 })
};
[1,4,7,2,10].sum(); // 24

4858美高梅 3

比较第一种办法,使用reduce()主意的效用越来越高。

更加的多关于JavaScript相关内容感兴趣的读者可查阅本站专项论题:《JavaScript数据结构与算法技术计算》、《JavaScript数学生运动算用法总计》、《JavaScript排序算法总括》、《JavaScript遍历算法与技巧总计》、《JavaScript查找算法手艺总计》及《JavaScript错误与调整本领计算》

那二种办法的功效比较能够直接在函数运营前后分别调用new Date()得到即时日子,从而通过时间差相比较实践时间。这里就不可比了,因为每一种人的实行意况差别极大。测试结果是reduce()4858美高梅 ,办法的推行时间更加短。

愿意本文所述对大家JavaScript程序设计有所扶助。

JS数组求和函数,并求出数组中的最大值

您恐怕感兴趣的篇章:

  • js军长HTMLCollection/NodeList/伪数组转换到数组的代码
  • javascript 伪数组达成情势
  • js数组与字符串的竞相调换方法
  • js将类数组对象转变来数组对象
  • js完成数组转变到json
  • json对象与数组以及调换来js对象的简易完成格局
  • js中如何把字符串转化为对象、数组示例代码
  • js完毕字符串和数组之间互相转变操作
  • JS数组操作(数组扩张、删除、翻转、转字符串、取索引、截取(切成块)slice、剪接splice、数组合并)
  • js数组常见操作及数组与字符串彼此转化实例详解
  • js接收并转账Java中的数组对象的方法

实例代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>脚本之家_js数组求和和最大值方法_脚本之家网</title>

<meta name="keywords" content="站长,网页特效,网页特效代码,js特效,js脚本,脚本,广告代码,jb51.net,www.jb51.net,脚本之家网" />

<meta name="description" content="www.jb51.net,脚本之家网,站长必备js特效及广告代码。大量高质量js特效,提供高质量广告代码下载,尽在脚本之家网" />

</head>

<body>

<a href="//www.jb51.net/">脚本之家网</a>,站长必备的高质量网页特效和广告代码。jb51.net,站长js特效。<hr>

<script type="text/javascript">

//求和

Array.prototype.sum = function () {

 for (var sum = i = 0; i < this.length; i++)sum += parseInt(this[i]);

  return sum ;

};

//求最大值

Array.prototype.maxima = function () {

 for (var i = 0, maxValue = Number.MIN_VALUE; i < this.length; i++)parseInt(this[i]) > maxValue && (maxValue = this[i]);

 return maxValue;

};

//应用

var arr = [1,21,3,4,22,45,60,7,32];

alert(arr.join("+") + "=" + arr.sum()); alert(arr.join("|") + "中, 最大的数是:" + arr.maxima());

</script>

</body>

</html>

如上正是本文的全体内容,希望对大家使用JavaScript有所辅助啊,假如有疑问的话招待留言商量,作者会及时恢复生机我们的。

你也许感兴趣的篇章:

  • JavaScript常用字符串与数组增加函数小结
  • javascript
    Array数组对象的扩展函数代码
  • js完成prototype增添的章程(字符串,日期,数组增加)
  • javascript框架设计读书笔记之数组的恢宏与修复
  • js数组方法扩张实现数组计算函数
  • 编排js扩充方法推断二个数组中是还是不是含有某些成分
  • 扩张js对象数组的OrderByAsc和OrderByDesc方法实现思路
  • JS的数组的扩大实例代码
  • javascript数组的恢弘达成代码集结
  • 求js数组的最大值和最小值的种种艺术
  • JavaScript学习笔记之数组求和方法
  • JS完成求数组发轫项到终止项之和的不二秘技【基于数组扩大函数】

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有