這麼快問題。如果你有兩個對象數組,並且你想'對齊'這些對象數組,那麼你可以確保每個數組的對象與其他數組的順序相同?如果你不知道數組內的任何對象包含哪些鍵和值,那麼該怎麼辦......更不用說他們甚至在什麼順序?
因此,您需要爲您的[].filter
,[].map
等設置「通配符表達式」。如何獲得通配符表達式?
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);
}));
您也可以使用此功能在一個重複中的每個對象創建的所有在每個對象的按鍵更好的集體表達,然後篩選陣列的方式。
這是一個來自API Juxtapose的小片段,我幾乎已經完成了,它是這樣做的,它與豁免,對象單元和數組凝結對象相等。如果這些是您的項目需要或想要的東西,請發表評論,我會盡早讓lib訪問。
希望這會有所幫助!快樂編碼:)
通過搜索你的意思是過濾器? – joragupra