2018.2.27 JavaScript数组方法应用
JavaScript数组方法应用
1.找出元素item在给定数组arr中的位置
function indexOf(arr,item){
return arr.indexOf(item);
}
function indexOf(arr,item){
var index = -1;
arr.forEach(function(res,i)){
if(res === item && index === -1){
index = i;
}
});
return index;
}
function indexOf(arr,item){
if(Array.prototype.indexOf){
return arr.indexOf(item);
}else{
for(var i = 0; i<arr.length;i++){
if(arr[i] === item){
return i;
}
}
}
return -1;
}
function indexOf(arr,item){
var len = arr.length;
for(var i = 0;i < len;i++){
if(arr[i] == item){
return i;
}
}
return -1;
}
2.计算数组arr中所有元素的总和
//不考虑算法复杂度,用递归
function sum(arr){
var len = arr.length;
if(len == 0){
return 0;
}else if(len ==1){
return arr[0];
}
}else{
return arr[0] + sum(arr.slice(1));
}
}
//常规循环
function sum(arr){
var s = 0;
for(var i = arr.length-1;i>=0;i--){
s+=arr[i];
}
return s;
}
//函数式编程map-reduce
function sum(arr){
return arr.reduce(function(prev,curr,idx,arr)
return prev +curr;
});
}
//forEach遍历
function sum(arr){
var s = 0;
arr.forEach(function(val,idx,arr)){
s += val;
},0);
return s;
};
//eval
function sum(arr){
return eval(arr.join("+"));
};
3.移除数组arr中的所有值与item相等的元素。不要直接修改数组arr,结果返回新的数组
//1.splice()
function remove(arr,item){
var newarr = arr.slice(0);
for(var i = 0;i<newarr.length;i++){
if(newarr[i] == item){
newarr.splice(i,1);
i--;
}
}
return newarr;
}
//2.push()
function remove(arr,item){
var newarr = [];
for(var i = 0;i<arr.length;i++){
if(arr[i] !=item){
newarr.push(arr[i]);
}
}
return newarr;
}
//3.Array y.protototype.filter()
function remove(arr,item)
2018.2.27 JavaScript数组方法应用的更多相关文章
- 一站式超全JavaScript数组方法大全
一站式JavaScript数组方法大全(建议收藏) 方法一览表 详细操作 本人总结了JavaScript中有关数组的几乎所有方法(包含ES6之后新增的),并逐一用代码进行演示使用,希望可以帮助大家! ...
- JavaScript数组方法--every、some、fill
接上一篇,JavaScript数组方法--concat.push,继续其他的数组方法. every:every() 方法测试数组的所有元素是否都通过了指定函数的测试. 先看其使用方法: functio ...
- 【译】你应该了解的JavaScript数组方法
让我们来做一个大胆的声明:for循环通常是无用的,而且还导致代码难以理解.当涉及迭代数组.查找元素.或对其排序或者你想到的任何东西,都可能有一个你可以使用的数组方法. 然而,尽管这些方法很有用,但是其 ...
- JavaScript数组方法大全(推荐)
原网址:http://www.jb51.net/article/87930.htm 数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习, ...
- JavaScript 数组方法处理字符串 prototype
js中数组有许多方法,如join.map,reverse.字符串没有这些方法,可以“借用”数组的方法来处理字符串. <!doctype html> <html lang=" ...
- JavaScript数组方法详解
JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中 ...
- JavaScript数组方法速查,32个数组的常用方法和属性
JavaScript数组方法速查手册极简版 http://30ke.cn/doc/js-array-method JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方 ...
- JavaScript数组方法大集合
JavaScript数组方法集合 本文总结一下js数组处理用到的所有的方法.自己做个笔记. 数组方法 concat() 合并两个或多个数组 concat()能合并两个或者多个数组,不会更改当前数组,而 ...
- 4个错误使用JavaScript数组方法的案例
译者按: 做一个有追求的工程师,代码不是随便写的! 原文: Here's how you can make better use of JavaScript arrays 译者: Fundebug 为 ...
随机推荐
- C# 写 LeetCode easy #13 Roman to Integer
13.Roman to Integer Roman numerals are represented by seven different symbols: I, V, X, L, C, D and ...
- unity3d GUI字体设置
using System.Collections; using System.Collections.Generic; using UnityEngine; public class click001 ...
- Android在Win10环境搭建
一.安装JDK并配置环境变量 1.在Java官方网站上下载相应系统的jdk文件安装,如win7 64 位系统下安装jdk-6u45-windows-x64,全部选择默认的安装路径即可安装完成. 2.配 ...
- Vue实现一个MarkDown编辑器
Vue实现一个markdown编辑器 前段时间做项目的时候,需要一个Markdown编辑器,在网上找了一些开源的实现,但是都不满足需求 说实话,这些开源项目也很难满足需求公司项目的需求,与其实现一个大 ...
- FZU 2218【状压】
题意: 给出长为n的字符串,含有前k种小写字母,求两个不含重复元素的连续子串,使得他们的长度乘积最大. 思路: 字符种类16 ->(套路) 状压 暴力2000*2000得所有连续子串的长度,得每 ...
- duliu——思维+线段树
题目 [题目描述]小 `D` 喜欢出毒瘤题毒人.当然,他的毒瘤更多体现在若干个难题组合在同一场比赛时.小 `D` 脑中有 $n$ 个毒瘤题 idea,第 $i$ 个的毒值为$d_i$.当第 $i$ 个 ...
- 理解JavaScript中的深拷贝和浅拷贝
, num2 = num1;console.log(num1) //1console.log(num2) //1num2 = 2; //修改num2console.log(num1) //1conso ...
- null is not an object (evaluating 'Picker._init')
安装完react-native-picker后,init出现报错,其实是原生配置还没完全生效,重启项目就可以了
- Django-Rest-Framework的视图和路由
Django-Rest-Framework的视图和路由 restful framework Django-Rest-Framework的视图 APIView django中写CBV的时候继承的是V ...
- GYM 101572A(单调队列优化dp)
要点 较好的思路解析 \(dp[i]\)为到达\(i\)花费的最短时间,\(dis[i]-dis[j]<=lim1\)的情况其实可以省略,因为就相当于没买咖啡,绝对不优于在那之前的某店买了咖啡并 ...