移除数组中的元素

题目描述 : 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入 [1, 2, 3, 4, 2], 2
输出 [1, 3, 4]

参考答案

注意到题目中说的不要修改原数组,这里有两个思路(一是通过深拷贝得到相同的数组,然后就不需要考虑splice,push等会不会影响原数组;二是利用数组的slice和concat, filter等不影响原数组的方法进行操作)

  • 首层深拷贝(concat,slice, 扩展运算符)
function remove(arr, item) {
var b=[...arr];
for(var i=0;i<b.length;i++){
if(b[i]==item){
b.splice(i, 1);
}
}
return b;
}
function remove(arr, item){
var b=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!==item){
b.push(arr[i]);
}
}
}
  • 利用不影响原数组的方法
function remove(arr, item) {
return arr.filter(i=>i!=item);
}
function remove(arr, item) {
var b=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=item){
b=b.concat(arr[i]);
}
}
return b;
}

js能力测评——移除数组中的元素的更多相关文章

  1. js小练习-移除数组中的元素

    移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 代码: <!DOCTYPE HTML><html>    <he ...

  2. LeetCode 27 Remove Element (移除数组中指定元素)

    题目链接: https://leetcode.com/problems/remove-element/?tab=Description   Problem : 移除数组中给定target的元素,返回剩 ...

  3. LeetCode数组移除数组中目标元素等题目

    一种自己解题,一种高赞解题 /** * 移除数组中目标元素,返回新数组长度 * @param nums * @param val * @return */ public int removeEleme ...

  4. Leetcode27--->Remove Element(移除数组中给定元素)

    题目:给定一个数组array和一个值value,移除掉数组中所有与value值相等的元素,返回新的数组的长度:要求:不能分配额外的数组空间,且必须使用原地排序的思想,空间复杂度O(1); 举例: Gi ...

  5. js 移除数组中的内容

    使用方法:arr.splice(arr.indexOf(ele),length):表示先获取这个数组中这个元素的下标,然后从这个下标开始计算,删除长度为length的元素 这种删除方式适用于任何js数 ...

  6. 统计js数组中奇数元素的个数

    如何统计一个JS数组中奇数元素的个数呢? 这是群友提出的一个问题,大部分群友给出的是遍历 然后对2取模,得到最终结果. 这样的写法是最容易想得到的,那么有没有其他思路呢? 这里我提供另外一种思路,我们 ...

  7. LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)

    题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/#/description 给定一个已经排好序的数组 ...

  8. array_unique() 函数移除数组中的重复的值

    array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变.

  9. js 删除 数组中某个元素(转载)

    来源:https://www.jb51.net/article/134312.htm js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.ht ...

随机推荐

  1. github 删除库

    1.查看库 2.选择想要删除的库,点击setting 3.删除库

  2. c# 一维数组和二维数组的几种定义方式<转>

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  3. Java8 Stream用法详解

    1.概述 Stream 的原理:将要处理的元素看做一种流,流在管道中传输,并且可以在管道的节点上处理,包括过滤筛选.去重.排序.聚合等.元素流在管道中经过中间操作的处理,最后由最终操作得到前面处理的结 ...

  4. Yum注册

    我虚拟机安装的系统是RedHat Enterprise Linux 6.4-i686,是32位的.使用yum命令安装软件时候出现以下错误: This system is not registered ...

  5. windows系统中如何找到某程序运行的本地文件

    主要通过window自带的服务功能来查询: 比如:

  6. X-CTF(REVERSE高级) Reversing-x64Elf-100

    逻辑很简单,如果sub_4006FD函数返回假则返回Nice! 图1 进入sub_4006FD函数,加密过程也很简单,这里值得注意的有两点 一.8*(i%3)是二维数组的第一个参数,这里是取v3的地址 ...

  7. 冬日曙光——回溯CNN的诞生

    前言 卷积神经网络(CNN)作为深度学习的重要一支,在当前计算机视觉领域应用相当广泛.本文回顾了深度学习的发展历程,讲述CNN基本的理论概念和第一代卷积神经网络LeNet-5的建立.文章言有不当之处, ...

  8. IDEA | Dot Executable: null..No dot executable found

    背景 今天想在IDEA上打开.puml后缀的类图,发现IDEA并不能识别,但是正常的时序图却能正常打开,打开类图就报如下错误: 解决方案 经排查,idea的plantuml插件默认只支持时序图,类图还 ...

  9. 1222: 计算x^1+x^2+x^3+……+x^n的值

    #include <stdio.h>int main(){ int x,n,i,j; long long sum,g;while(scanf("%d%d",&x ...

  10. Arduino系列之按键模块(二)

    上一节简单介绍啦一下按键模块怎么使用 但是在使用过程中会常常出现延时时间过长,有时候按键会失灵 所以,接下来,我将优化程序,使得按键按下时,就能使count加1 下面是程序思路:同样的定义按键脚: 定 ...