如何从这个数据结构中删除javascript对象中的数据?

Jen*_*nan 2 javascript arrays

我需要阅读所有连接时间.(connectionTimes)我需要删除该行 - 当它离线时比在线更多:

    userId: 1,
    connectionTimes:
        [
            {onlineTime:"11:10:30", offlineTime:"11:18:12"}, //delete
            {onlineTime:"11:14:14", offlineTime:"11:52:41"}  //delete
        ]
Run Code Online (Sandbox Code Playgroud)

删除用户ID - 连接时间为空.

 userId: 1, //delete userid
        connectionTimes:
            [
                //empty connection
            ]
Run Code Online (Sandbox Code Playgroud)

我有这个数据结构:

var users = [];

    users[0] = {
        userId: 1,
        connectionTimes:
            [
                {onlineTime:"11:10:30", offlineTime:"11:18:12"},
                {onlineTime:"11:14:14", offlineTime:"11:52:41"}
            ]
    }

    users[1] = {
        userId: 2,
        connectionTimes: 
            [
                {onlineTime:"8:08:14", offlineTime:"1:15:00"}
            ]
    } 
Run Code Online (Sandbox Code Playgroud)

And*_*och 8

您可以使用delete运算符从JavaScript对象中删除属性:

var sampleObject = {
    "key1": "value1",
    "key2": "value"
};
delete sampleObject["key2"];
Run Code Online (Sandbox Code Playgroud)

或者像这样:

delete sampleObject.key2
Run Code Online (Sandbox Code Playgroud)

有关删除运算符的更多背景信息,请参阅Mozilla开发人员网络JavaScript参考:https: //developer.mozilla.org/en/JavaScript/Reference/Operators/delete

您的具体示例如下所示:

for(var id in users) {
    var user = users[id];
    if (user.connectionTimes.length === 0) {
        delete users[id];
        break
    }

    for(var i=0; i<=user.connectionTimes.length; i++) {
        var connectionTime = user.connectionTimes[i];
        if (connectionTime.onlineTime < connectionTime.offlineTime) {
            delete users[id];
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是jsFiddle的链接,显示代码在运行:http: //jsfiddle.net/Q86Jd/