1. 找出数组 arr 中重复出现过的元素

function duplicates(arr) {
var result = [];
var count = [];
for (var i=0;i<arr.length;i++) {
if(count[arr[i]]) {//count用来记录数组中元素出现的次数,key是元素,value是次数。
count[arr[i]]++;
}
else {
count[arr[i]]=1;
}
}
for (var i=0;i<count.length;i++) {
if (count[i]>1) {
result.push(i);//这里要传入的是元素也就是key
}
}
return result;
}
function duplicates(arr) {
var result = [];
arr.forEach(function(elem){
if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem) == -1){
result.push(elem);
}
});
return result;
}

2. 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组

function square(arr) {
var result = [];
arr.forEach(function(e) {
result.push(e*e);
});
return result;
}
function square(arr) {
return arr.map(function(e) {
return e*e;
});
}

3. 在数组 arr 中,查找值与 item 相等的元素出现的所有位置

function findAllOccurrences(arr, target) {
var result = [];
arr.forEach(function(item,index,arr) {
if (item==target) {
result.push(index);
}
});
return result;
}
  参考别人的:
function findAllOccurrences(arr, item) {
return arr.map(function(e, index) {
return e === item ? index : -1;
/* 样例返回结果为[ -1, -1, -1, -1, -1, -1, -1, 0, 6 ] */
}).filter(function(i) {
return i !== -1;
/* 过滤掉 i === -1 的情况 */
})
}
// ES6箭头函数版
const findAllOccurrences = (arr, item) =>
arr.map((e, index) => e === item ? index : -1)
.filter(i => i !== -1);
这个比较简洁的也可以实现。
function findAllOccurrences(arr, target) {
return arr.map(function(item,index,arr) {
if (item==target) {
return index;
}
});
}

4.

JS操作数组-2的更多相关文章

  1. JS操作数组的常用方式

    一.JS操作数组一:删除指定的元素 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. //查找指定元素下标 Array.prototype.indexOf = function ...

  2. JS操作数组常用的方法

    JS操作Array对象的方法 concat(arr1,arr2,...):连接数组indexOf(value):返回数组中value的第一个索引join(separator):将数组中所有的元素连接由 ...

  3. JS 操作数组对象

    我们在操作数组时,加入数组中是以对象的形式存在,例如: 那么我们会涉及到去重复,去掉为0的数组中的对象,js代码如下: function getItemList(gid, totalMoney, ad ...

  4. js操作数组元素

    一, 删除数组指定的某个元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) ...

  5. js操作数组

    一.数组的声明方式: var colors = new Array();//创建数组 var colors = new Array(20);//创建20个长度的数组 var colors = new ...

  6. js操作数组的一些小技巧

    1.从数组中随机获取成员 var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119]; var  rando ...

  7. js 操作数组封装

    function OperateArray(array) { this.array = array; } OperateArray.prototype.hasValue = function(val) ...

  8. js 操作数组(过滤对应数据)

    过滤掉相应数据 var fileList = { "85968439868a92": [{name: 'food.jpeg'}, {name: 'ood.jpeg'}], &quo ...

  9. 小tips:JS操作数组的slice()与splice()方法

    slice(start, end) slice()方法返回从参数指定位置开始到当前数组末尾的所有项.如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项. var colors = ...

随机推荐

  1. vue实用组件——圆环百分比进度条

    因为所在公司临近年底突然宣布Game Over,导致我等小码农又要踏上一个艰辛的求职道路了.才眨眼功夫,年就过完了,快乐的时光总是很匆忙呀. 开年的第一个面试,面试官问我会不会自己写一个圆环进图圈,这 ...

  2. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  3. npm安装github包的方式

    直接在npm仓库进行安装 npm install kiana-js --save 直接利用用户名和仓库名进行安装 npm install easterCat/kiana-js 也可以在前面加上 git ...

  4. C#程序员知识体系

    [https://blog.csdn.net/zj735539703/article/details/50409476] 基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 AS ...

  5. Android安全–加强版Smali Log注入

    有的时候我们需要注入smali调用Log输出,打印字符串的值. 比如说: 如果我们要打印下面v1的值. new-instance v1, Ljava/lang/String; const-string ...

  6. Spring Boot admin 2.0 详解

    一.什么是Spring Boot Admin ? Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序. 应用程序作为Spring Boot Admin C ...

  7. 设计模式之一工厂方法模式(Factory Method)

    工厂方法模式分为三种: 一.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口: pub ...

  8. 如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇)(1) - 目录

    昨天发表了<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>后,大家十分热情,几个小时内就收到了不少问题,包括: 对于ui自动化测试这方 ...

  9. 广州.NET微软技术俱乐部微信群各位技术大牛的blog

    1. .net core和微服务领域的张善友张队长和马洪喜,证明了.net core和微服务已经在各方面都不比java差2. Xamarin的卢建晖,证明了.net在移动开发领域也是很牛的.3. wi ...

  10. huffman树即Huffma编码的实现

    自己写的Huffman树生成与Huffman编码实现 (实现了核心功能 ,打出了每个字符的huffman编码 其他的懒得实现了,有兴趣的朋友可以自己在我的基础增加功能 ) /* 原创文章 转载请附上原 ...