Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
173
rated 0 times [  176] [ 3]  / answers: 1 / hits: 18524  / 13 Years ago, mon, january 23, 2012, 12:00:00

I need to read all the connection times. (connectionTimes)
I need to delete the line - when it will be offline more than online:



    userId: 1,
connectionTimes:
[
{onlineTime:11:10:30, offlineTime:11:18:12}, //delete
{onlineTime:11:14:14, offlineTime:11:52:41} //delete
]


Delete user id - When times the connection will be empty.



 userId: 1, //delete userid
connectionTimes:
[
//empty connection
]


I have this data structure:



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}
]
}

More From » arrays

 Answers
141

You can delete a property from an JavaScript object with the delete operator:



var sampleObject = {
key1: value1,
key2: value
};
delete sampleObject[key2];


or like this:



delete sampleObject.key2


See the Mozilla Developer Network JavaScript Reference for more background on the delete operator:
https://developer.mozilla.org/en/JavaScript/Reference/Operators/delete



Your specific example would look something like this:



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;
}
}
}


Here is a link to jsFiddle showing the code in action:
http://jsfiddle.net/Q86Jd/


[#87844] Sunday, January 22, 2012, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jameson

Total Points: 534
Total Questions: 103
Total Answers: 102

Location: Lithuania
Member since Fri, Sep 4, 2020
4 Years ago
;