Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在我的案例中,如何移除对象_Javascript - Fatal编程技术网

Javascript 在我的案例中,如何移除对象

Javascript 在我的案例中,如何移除对象,javascript,Javascript,我正在尝试删除基于obj id的对象 我有点像 var array =[]; var id =3; array [ { id:'1', title:'test' }, { id:'2', title:'tes2' }, { id:'3', title:'tes3' } ] 如何根据id 3删除对象。谢谢 使用: 或者,要在位修改阵列,请执行以下操作: for ( i = 0; i < array.len

我正在尝试删除基于obj id的对象

我有点像

var array =[];
var id =3;

array [
   {
    id:'1',
    title:'test'
   },
   {
    id:'2',
    title:'tes2'
   },
   {
    id:'3',
    title:'tes3'
   }
]
如何根据id 3删除对象。谢谢

使用:

或者,要在位修改阵列,请执行以下操作:

for ( i = 0; i < array.length; ++i )
{
  if (array[i].id == id)
  {
    array.splice(i, 1);
    break;
  }
}

如果您或您的用户使用的是最新浏览器,则可以使用以下选项来替代先前发布的答案:

function removeByPropertyEquals(haystack, needleProp, needleVal) {
    haystack.forEach(function (obj, index) {
        if (obj[needleProp] === needleVal) {
            return index;
        }
    });
    return -1;
}

var id = 3,
    array = [{
        id: '1',
        title: 'test'
    }, {
        id: '2',
        title: 'tes2'
    }, {
        id: '3',
        title: 'tes3'
    }];

console.log( array );

array.splice(removeByPropertyEquals(array, 'id', '3'), 1);

console.log( array );

参考资料:

. .
数组。拼接ID-1,1;指定重新打开-虽然Array.prototype.filter仍在使用,但查找元素与删除元素是不同的操作;返回一个没有该项的新数组。虽然它可以工作,但速度会慢一些,而且会消耗比需要更多的内存。添加了一个就地修改版本;如果idx!==-1个数组。idx,1;
function removeByPropertyEquals(haystack, needleProp, needleVal) {
    haystack.forEach(function (obj, index) {
        if (obj[needleProp] === needleVal) {
            return index;
        }
    });
    return -1;
}

var id = 3,
    array = [{
        id: '1',
        title: 'test'
    }, {
        id: '2',
        title: 'tes2'
    }, {
        id: '3',
        title: 'tes3'
    }];

console.log( array );

array.splice(removeByPropertyEquals(array, 'id', '3'), 1);

console.log( array );