精华内容
下载资源
问答
  • 时候,我们需要根据 属性属性值 找到数组对象对应的该。 例如,现有如下结构数组对象: // Array Object const arr = [ { name: '王佳斌', age: '20' }, { name: '孙玉红', age: '15' } ] 现在,...

    前言

    有时候,我们需要根据 某一属性与属性值 找到数组对象中对应的该项。

    例如,现有如下结构数组对象:

    // Array Object
    const arr = [
    	{ name: '王佳斌', age: '20' },
    	{ name: '孙玉红', age: '15' }
    ]
    

    现在,我们要删除 年龄=15 岁的项,预期如下代码所示:

    // Array Object
    const arr = [
    	{ name: '王佳斌', age: '20' }
    	// 被删除
    ]
    

    解决方案

    由于使用了 splice() 方法,顾会改变原始数组。

    以下函数做了封装,只需要传入相关参数,即可完成需求。

    /*
     * 根据数组对象属性删除对应项
     * @param {Array} arr - 数组对象
     * @param {String} attr - 属性
     * @param {} value - 属性值
     * @return void
     */
     removeByValue(arr, attr, value)
     { 
      var index=0;
      for(var i in arr){
        if(arr[i][attr]==value){
          index=i;
          break;
        }
      }
      arr.splice(index,1);
    }
    
    // 原数组
    const arr = [
    	{ name: '王佳斌', age: '20' },
    	{ name: '孙玉红', age: '15' }
    ]
    
    // 移除age=15的项
    removeByValue(arr, 'age', '15')
    

    写在后面

    你也可以将该方法用于微信小程序或uni-app等项目。

    展开全文
  • 由于日常工作经常需要对数组进行操作,最经常使用到的就是对数组进行的删除操作 对于我们前端来说,数组有两种区别 1、var arr = [ 'aaa' , 'bbb' , 'ccc' ,' ddd' , 'eee' ] 这种暂且称之为纯数组 2、var ...

    由于日常工作中经常需要对数组进行操作,最经常使用到的就是对数组进行的删除操作

    对于我们前端来说,数组有两种区别

    1、var arr = [ 'aaa' , 'bbb' , 'ccc' , ' ddd' , 'eee' ]  这种暂且称之为纯数组

    2、var jsonArr =  [ { name: 'cz' , age: '25'} , { name: 'mp' , age: '18'} , { name:'lyy' , age: '18' } ] 这种暂且称之为对象数组

    首先,我们要删除数组中的某一项,我们一定要知道下边三种条件中的其中一种,才能达到精确删除的目的

    1、知道要删除项在数组中的下标

    2、知道要删除项的值

    3、如果要删除项是一个对象,而且我们知道这个对象中的唯一属性值

    //1、知道要删除项的下标值
    //index为删除项的下标值  arr为源数组
    var arrRemoveIndex = function(index,arr) {
        if (!arr || arr.length == 0) {
            return ""
        }
        arr.splice(index,1)
        return arr
    }
    
    //2、知道要删除项的值
    //it 为要删除项的值  arr为源数组
    var arrRemove = function (it, arr) {
        if (!arr || arr.length == 0) {
            return ""
        }
        let flag = arr.indexOf(it)
        if (flag > -1) {
            arr.splice(flag, 1)
            return arr
        } else {
            console.log("未查找到该元素")
        }
    }
    
    //3、如果要删除项为对象,我们需要知道该对象属性中的唯一值(不会重复的值)
    //arr是源数组,attr是目标数组中的属性名称,value是要删除的属性名称对应的值
    var arrRemoveJson = function (arr, attr, value) {
      if (!arr || arr.length == 0) {
        return ""
      }
      let newArr = arr.filter(function (item, index) {
        return item[attr] != value
      })
      return newArr
    }
    
    let arr = ['aaa','bbb','ccc','ddd']
    let arrJson = [{ id: 1 , name: 'cz'},{ id: 2 , name: 'mp'},{ id: 3 , name: 'xp'}];
    let newArr1 = arrRemoveIndex(1,arr);  // ['aaa','ccc','ddd']
    let newArr2 = arrRemove('bbb',arr);   // ['aaa','ccc','ddd']
    let newArr3 = arrRemoveJson(arr,'id','2') //[{id:1,name:'cz'},{id:3,name:'xp'}]
    
    

    以上可以放到工具类,方便反复调用。

    展开全文
  • { "type" : "homework", "score" : 35.8740349954354 } ] } 最好是使用以下方法$pull使用过滤器,以便从数组中删除特定的分数。下面的代码使用MongoDBJava驱动程序v3.6和模型API import com.mongodb.MongoClient; ...

    数据结构如下:

    {
        "_id" : 0,
        "name" : "aimee Zank",
        "scores" : [
                {
                        "type" : "exam",
                        "score" : 1.463179736705023
                },
                {
                        "type" : "quiz",
                        "score" : 11.78273309957772
                },
                {
                        "type" : "homework",
                        "score" : 6.676176060654615
                },
                {
                        "type" : "homework",
                        "score" : 35.8740349954354
                }
        ]
    }
    

    最好是使用以下方法$pull使用过滤器,以便从数组中删除特定的分数。下面的代码使用MongoDBJava驱动程序v3.6和模型API

    import com.mongodb.MongoClient;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoDatabase;
    import org.bson.Document;
    import java.util.ArrayList;
    import java.util.List;
    import static com.mongodb.client.model.Updates.pull;
    
    public class RemoveLowestScoreArray {
    
        public static void main(String[] args) {
            MongoDatabase database;
            try (MongoClient client = new MongoClient()) {
                database = client.getDatabase("school");
                MongoCollection<Document> collection = database.getCollection("students");
                List<Document> students = collection.find().into(new ArrayList<>());
    
                for (Document student : students) {
                    Document lowestScore = null;
                    for (Document score : (List<Document>) student.get("scores")) {
                        if (score.getString("type").equals("homework")) {
                            if (lowestScore == null || score.getDouble("score") < (lowestScore.getDouble("score"))) {
                                lowestScore = score;
                            }
                        }
                    }
                    collection.updateOne(student, pull("scores", lowestScore));
                }
            }
        }
    
    
    }
    
    展开全文
  • (2)删除对象数组中具有指定属性的多个item let arr = [ {id:1,name:'Tom',sex:0}, {id:2,name:'Jerry',sex:1}, {id:3,name:'Danny',sex:1}, {id:4,name:'Jenny',sex:0}, {id:6,na...

    (1)删除指定下标的item

    arr.splice(index,1);

    (2)删除对象数组中具有指定属性的多个item

    let arr = [
    		{id:1,name:'Tom',sex:0},
    		{id:2,name:'Jerry',sex:1},
    		{id:3,name:'Danny',sex:1},
    		{id:4,name:'Jenny',sex:0},
    		{id:6,name:'Lee',sex:0},
    	];
    	
    	for(let i=0;i<arr.length-1;i++){
    		if(arr[i].sex===1){
    			arr.splice(i,1);
    		}
    	}
    	
    	console.log(arr);
     arr = [
    		{id:1,name:'Tom',sex:0},
    		{id:3,name:'Danny',sex:1},
    		{id:4,name:'Jenny',sex:0},
    		{id:6,name:'Lee',sex:0},
    	]

     

    这样的话知识单纯的删掉了下标是2的符合sex=1的item,其余的并没与删掉

    这样我们采用倒叙的方法

    let arr = [
    		{id:1,name:'Tom',sex:0},
    		{id:2,name:'Jerry',sex:1},
    		{id:3,name:'Danny',sex:1},
    		{id:4,name:'Jenny',sex:0}
    	];
    	
    	for(let i=arr.length-1;i>=0;i--){
    		if(arr[i].sex === 1){
    			arr.splice(i,1);
    		}
    	}

    这样我们得到的arr就是

     arr = [
    		{id:1,name:'Tom',sex:0},
    		{id:4,name:'Jenny',sex:0}
    	]

    目前只找到了这样简单的方法

    展开全文
  • 第二次循环,index是1,item是2,arr是[1,2], if条件不成立,使用splice无法删除了第二个重复的1; 原因是使用splice容易使数组的index乱序。。。 正确做法: 应用到对象上: 转载于:https://www.cnblog...
  • let filter_arrObj = []; let arrObj = [ { name: 'xiaoqing', age: 15, sex: 0 }, { name: 'xiaoming', age: 12, sex: 0 }, { name: 'xiaobai', age: 21, sex: 0 }, {
  • 因此直接运行即可改变原来的数组,得到相应结果,如果不想改变初始数组,请用备份数组进行操作 2、因为是直接比较的数组中某项的内容,因此出现重复的也会删除,所以需要注意初始数组的唯一性 var arr1 = [ {a:...
  • 1:js的splice方法 ...splice3个参数,它也可以用来替换/删除/添加数组一个或者几个值 index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d']
  • 也可以在创建数组的同时,初始化数组的每一值:var arr = new Array(1,2,3,4,5);此方法一般不常用。2、var arr = [1,2,3,4,5];这是创建数组的常用方法。注意:数组里可以存放任何数据,并非只有数字。数组的...
  • 在开发的过程,如果在不使用loadsh的情况下,如何自己实现删除数组某的功能?如何判断数组是否某一个对象?我们常见的数组和对象的组合是例如如下的样子: var as =[{id:1,name:"yang"},{id:2,name:...
  • 如,删除collections集合,resumeListmallId为1的这一删除后,resumeList只有mallId...// 删除doc集合,resumeList数组里面mallId属性值为mallId这一 doc.update({$pull:{resumeList:{mallId:mallId}}...
  • 根据数组对象属性删除对象

    千次阅读 2017-01-22 18:42:00
    我要根据属性isHost的值为1,来删除其中的object; 最后,解决的方法: var member2 = [];//可以把筛选后的对象存入数组中; function removeByValue(arr,attr,value) {//数组属性属性值 for(var ...
  • JS里的"数组"不是数组,而是对象js里的数组和其他语言数组是不同的,实际它并不是数组,而是一种array-like 特性的对象。它只是把索引转化成字符串,用作其属性(键)。例如:var 这也正是为什么 typeof arr = ...
  • 文章开始前先唠叨两句,最近工作实在太忙了,天天干到深夜,实在没时间来做知识分享,今天带来这篇JS中数组常用的方法,也是平时工作的一些总结的方法吧,熟练使用会大大提高开发效率,我们一起来看看这些方法。...
  • 在开发过程,我们时常会遇到这样一种情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象添加新的属性,如果更新此属性的值,是不会更新视图的。根据官方文档定义:如果在...
  • (给前端大全加星标,提升前端技能)作者:火狼https://segmentfault.com/a/1190000018549643前言本文主要从应用来讲数组api的一些骚操作,如一行代码扁平化n维数组数组去重、求数组最大值、数组求和、排序、对象和...
  • 假如我想保留数组中对象的id属性,其他属性统统删除 var currentDateItemList=['id','123','name','名字']; var newcurrentDateItemList = currentDateItemList.map((item,index) =>{ return Object.assign({},...
  • 如一行代码扁平化n维数组数组去重、求数组最大值、数组求和、排序、对象和数组的转化等;上面这些应用场景你可以用一行代码实现?1.扁平化n维数组1.终极篇[1,[2,3]].flat(2) //[1,2,3][1,[2,3,[4,5]].flat(3) //[1...
  • 没有重复的值(甚至在Set内部,NaN和NaN是相等的)它在初始化的时候接受一个数组或者类数组作为参数,数组里的值将会做为set的成员:var 初始化之后我们就得到了一个set,和数组一样,set身上也很多方法和属性。...
  • 引子:这些日子在看es相关的新属性一个数组的方法 flat() 引起的我的注意。1 什么是扁平化?我去找了一下维基百科,上面并没有关于扁平化的直接解释,只有一个扁平化组织释义。先来说一下,与扁平化对立的组织:...
  • 下面介绍时arr代表数组 属性 arr.length--计算数组的长度,返回--数组长度值 let arr = [1,2,3,4] console.log(arr.length) //结果: 4 方法 arr.push--在数组尾部添加元素,返回--添加元素后的数组 let arr = ...
  • //js删除数组中符合条件的多 for(let i = 0; i < chooseFile.length; i++) { if(chooseFile[i].isFolder && chooseFile[i].name.indexOf('3D') !== -1) { chooseFile.splice(i--,1); //i要-- } }
  • JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景。今天,李老师就来给大家讲解,各种JavaScript遍历方法的比较。各种数组遍历的方法for语句...
  • 在日常工作我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法?本篇文章将从以下几个方面进行介绍:Array.from()...
  • 关于Set它类似于数组,但是其成员的值都是唯一的,没有重复的值(甚至在Set内部,NaN和NaN是相等的)它在初始化的时候接受一个数组或者类数组作为参数,数组里的值将会做为set的成员:初始化之后我们就得到了一个set,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,832
精华内容 24,732
关键字:

删除数组中有某属性的项