在javascript中从类数组中获取对象[重复]

loading...


1

这个问题在这里已有答案:

我有一个类似的javascript类,

class Snake{
    constructor(id, trail){
        this.velocityX = 0;
        this.velocityY = -1;
        this.trail = trail;
        this.id = id;
    }
    moveRight(){
        console.log('move');
    }
}

和一个存储Snake对象的数组 .

this.snakeList = new Array();
this.snakeList.push(new Snake(10, newSnakeTrail));
this.snakeList.push(new Snake(20, newSnakeTrail));
this.snakeList.push(new Snake(30, newSnakeTrail));
this.snakeList.push(new Snake(22, newSnakeTrail));
this.snakeList.push(new Snake(40, newSnakeTrail));

例如,我想从数组中删除id为20的元素 .

我怎样才能做到这一点?

loading...

3回答

  • -1

    我在这里使用拼接:

    for (var i = 0; i < snakes.length; i++) {
        var obj = snakes[i];
        if (obj.id === 20) {
            snakes.splice(i, 1);
            i--;
        }
    }
    

    Snippet:

    let snakes = [{name: 'fuss', id: 10}, {name: 'huss', id: 20}, {name: 'hurr', id: 60}]
    
    for (var i = 0; i < snakes.length; i++) {
        var obj = snakes[i];
        if (obj.id === 20) {
            snakes.splice(i, 1);
            i--;
        }
    }
    
    console.log(snakes)
    

  • 5

    那这个呢

    this.snakeList = this.snakeList.filter(x => x.id != 20);
    
    let snakes = [{name: 'fuss', id: 10}, {name: 'huss', id: 20}, {name: 'hurr', id: 60}]
    //Before removal
    console.log("Before removal");
    console.log(snakes);
    
    snakes = snakes.filter(x => x.id != 20);
    
    //After removal
    console.log("After removal");
    console.log(snakes);
    

  • 0
    var snakeList = [
    {
    id:10,
    trail:{}
    },
    {
    id:20,
    trail:{}
    },
    {
    id:30,
    trail:{}
    }
    ]
    
    snakeList.forEach((x,index)=>{
    
    if(x.id === 20){
    snakeList.splice(index,1)
    }
    })
    
    console.log(snakeList)
    

    看到这是工作的例子,希望这会有所帮助

评论

暂时没有评论!