2016-04-14 7 views
-1

Wie wird gefiltert, wenn sowohl Code als auch datetime nur erscheinen sollen. Der untenstehende Fallcode ist falsch, da er auch datetime ohne den Code anzeigt.lodash filter, wenn beide Werte im Objekt erscheinen

Schließlich, wie kann ich die Ausgabe in PHP-Variable umwandeln, so dass ich es auf dem mysql einfügen

<script src="https://cdn.jsdelivr.net/lodash/4.10.0/lodash.min.js"></script> 
<script> 
    var data = <?php echo json_encode($data); ?>; 
    var users =_.map(data, function(obj) { 
       return _.pick(obj, 'code','datetime'); 
      }); 

_.forEach(users, function(value, key) { 
    console.log(value); 
}); 
</script> 

Beispielausgabe unten.

Object {datetime: "2016-04-11T08:49:24Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:48:13Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:47:44Z"} 
    u.php:10 Object {code: "7592584881", datetime: "2016-04-11T08:46:55Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:45:21Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:44:28Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:39:14Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:44:27Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:38:41Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:36:51Z"} 
    u.php:10 Object {code: "7830179866", datetime: "2016-04-11T08:42:23Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:42:02Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:41:49Z"} 
    u.php:10 Object {datetime: "2016-04-11T08:33:54Z"} 

Dies ist die JSON-Array für $ data

[ 
    { 
     "_id": "570e4f4ee4b0325dbf42c6c8", 
     "ap_from": "44:d9:e7:7a:63:81", 
     "ap_to": "44:d9:e7:7a:60:62", 
     "channel": "1", 
     "channel_from": "1", 
     "channel_to": "1", 
     "datetime": "2016-04-13T13:52:49Z", 
     "guest": "e8:50:8b:a7:84:60", 
     "key": "EVT_WG_Roam", 
     "msg": "Guest[e8:50:8b:a7:84:60] roams from AP[44:d9:e7:7a:63:81] to AP[44:d9:e7:7a:60:62] from \"channel 1(ng)\" to \"channel 1(ng)\" on \"EandCCopraWireless\"", 
     "radio": "ng", 
     "radio_from": "ng", 
     "radio_to": "ng", 
     "site_id": "565eedd4e4b077dd32e114d0", 
     "ssid": "EandCCopraWireless", 
     "subsystem": "wlan", 
     "time": 1460555569274 
    }, 
    { 
     "_id": "570e4e89e4b0325dbf42c6c0", 
     "ap": "44:d9:e7:7a:63:81", 
     "channel": "1", 
     "datetime": "2016-04-13T13:49:37Z", 
     "guest": "00:73:8d:8d:e7:58", 
     "key": "EVT_WG_Connected", 
     "msg": "Guest[00:73:8d:8d:e7:58] has connected to AP[44:d9:e7:7a:63:81] with ssid \"EandCCopraWireless\" on \"channel 1(ng)\"", 
     "radio": "ng", 
     "site_id": "565eedd4e4b077dd32e114d0", 
     "ssid": "EandCCopraWireless", 
     "subsystem": "wlan", 
     "time": 1460555377077 
    }, 
{ 
     "_id": "570e3eebe4b0325dbf42c603", 
     "code": "8516695243", 
     "datetime": "2016-04-13T12:43:23Z", 
     "guest": "82:81:95:74:77:90", 
     "key": "EVT_HS_VoucherUsed", 
     "msg": "Voucher[8516695243] was used by Guest[82:81:95:74:77:90]", 
     "site_id": "565eedd4e4b077dd32e114d0", 
     "subsystem": "wlan", 
     "time": 1460551403094 
    }, 
..... 
..... 
..... 

Antwort

0

Sie aus dem data Array die unerwünschten Elemente herauszufiltern, sollte es zu _.map(), bevor er:

var users = _.map(
    _.filter(data, function (obj) { 
     return _.has(obj, 'code') && _.has(obj, 'datetime'); 
    }), 
    function (obj) { 
     return _.pick(obj, ['code', 'datetime']); 
    } 
); 
+0

arbeiten nicht einmal nach dem Hinzufügen eines Paire von ")" Uncaught SyntaxError: fehlt) nach der Argumentliste \t \t u.php: 12 – NaD

+0

Sieht aus, als hätte ich ein paar Klammern vergessen. Es funktioniert jetzt. –

+0

Vielen Dank, Mann, es funktioniert jetzt. – NaD

Verwandte Themen