Js如何删除数组中某一个元素?

获得一串数组,如下:

var data = [
{"id":"1","name":"小刘","age":"25"},
{"id":"2","name":"小华","age":"24"},
{"id":"3","name":"小佳","age":"27"},
{"id":"4","name":"小王","age":"24"},
{"id":"5","name":"小何","age":"22"},
];

删除数组中age小于等于25岁的人,并返回新的数组:如下:

var data = [
{"id":"1","name":"小刘","age":"25"},
{"id":"3","name":"小佳","age":"27"},
];
阅读 16.6k
7 个回答

谢谢一楼

var data = [ 
    {"id":"1","name":"小刘","age":"25"},
    {"id":"2","name":"小华","age":"24"},
    {"id":"3","name":"小佳","age":"27"},
    {"id":"4","name":"小王","age":"24"},
    {"id":"5","name":"小何","age":"22"},

];

new_data = data.filter(function(element, index) {
    return element['age'] >= 25; 
});

console.log(new_data);

filter了解一下

var data = [
        {"id":"1","name":"小刘","age":"25"},
        {"id":"2","name":"小华","age":"24"},
        {"id":"3","name":"小佳","age":"27"},
        {"id":"4","name":"小王","age":"24"},
        {"id":"5","name":"小何","age":"22"},
    ];

    var data1 = []
    data.filter(function(e){
        if(e.age > 25){
            data1.push(e)
        }
    })
    console.log(data1)   //{id: "3", name: "小佳", age: "27"}
var data = [
            { "id": "1", "name": "小刘", "age": "25" },
            { "id": "2", "name": "小华", "age": "24" },
            { "id": "3", "name": "小佳", "age": "27" },
            { "id": "4", "name": "小王", "age": "24" },
            { "id": "5", "name": "小何", "age": "22" },
        ];

    var newData= data.filter(v=>v.age >= 25)

删除小于或等于25的,返回新数组

function splice(){
    for(let i = 0;i<data.length;i++){
        if(parseInt(data[i].age)<26){
            data.splice(i,1);
            i--;
        }
    }
    console.log(data);
}
var data = [
            { "id": "1", "name": "小刘", "age": "25" },
            { "id": "2", "name": "小华", "age": "24" },
            { "id": "3", "name": "小佳", "age": "27" },
            { "id": "4", "name": "小王", "age": "24" },
            { "id": "5", "name": "小何", "age": "22" },
        ];

    var newData= [];
    var res = data.forEach(function (item, index, input) {
            if (parseInt(item["age"]) >= 25){
                newData.push(item);
            }
        })
    console.log(newData);
新手上路,请多包涵

用underscore.js的filter的可以解决这个问题:

var data = [
            { "id": "1", "name": "小刘", "age": "25" },
            { "id": "2", "name": "小华", "age": "24" },
            { "id": "3", "name": "小佳", "age": "27" },
            { "id": "4", "name": "小王", "age": "24" },
            { "id": "5", "name": "小何", "age": "22" },
        ];
        var newData = _.filter(data, function(d){ return d.age > 25; })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题