我需要阅读所有连接时间.(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)
您可以使用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/