Also schnelle Frage. Was ist, wenn Sie zwei Arrays von Objekten haben und diese Objektarrays "ausrichten" möchten, damit Sie sicherstellen können, dass die Objekte jedes Arrays in der Reihenfolge der anderen Arrays sind? Was ist, wenn Sie nicht wissen, welche Schlüssel und Werte eines der Objekte in den Arrays enthält ... Ganz zu schweigen von der Reihenfolge, in der sie sich gerade befinden?
So haben Sie einen ‚WildCard Expression‘ für Ihre benötigen [].filter, [].mapetc. Wie bekommt man einen Wild Card Ausdruck?
var jux = (function(){
'use strict';
function wildExp(obj){
var keysCrude = Object.keys(obj),
keysA = ('a["' + keysCrude.join('"], a["') + '"]').split(', '),
keysB = ('b["' + keysCrude.join('"], b["') + '"]').split(', '),
keys = [].concat(keysA, keysB)
.sort(function(a, b){ return a.substring(1, a.length) > b.substring(1, b.length); });
var exp = keys.join('').split(']b').join('] > b').split(']a').join('] || a');
return exp;
}
return {
sort: wildExp
};
})();
var sortKeys = {
k: 'v',
key: 'val',
n: 'p',
name: 'param'
};
var objArray = [
{
k: 'z',
key: 'g',
n: 'a',
name: 'b'
},
{
k: 'y',
key: 'h',
n: 'b',
name: 't'
},
{
k: 'x',
key: 'o',
n: 'a',
name: 'c'
}
];
var exp = jux.sort(sortKeys);
console.log('@juxSort Expression:', exp);
console.log('@juxSort:', objArray.sort(function(a, b){
return eval(exp);
}));
Sie können diese Funktion auch über eine Iteration für jedes Objekt verwenden, um einen besseren kollektiven Ausdruck für alle Schlüssel in jedem Ihrer Objekte zu erstellen und dann Ihr Array auf diese Weise zu filtern.
Dies ist ein kleiner Ausschnitt aus der API Juxtapose, den ich fast vollständig habe. Dies geschieht, Objektgleichheit mit Ausnahmen, Objekteinheiten und Array-Kondensation. Wenn dies Dinge sind, die Sie für Ihr Projekt benötigen oder wollen, kommentieren Sie dies bitte und ich werde die Bibliothek früher als später zugänglich machen.
Hoffe das hilft! Viel Spaß beim Codieren :)