तो त्वरित प्रश्न। क्या होगा यदि आपके पास ऑब्जेक्ट्स के दो एरे हैं और आप इन ऑब्जेक्ट एरे को 'संरेखित' करना चाहते हैं ताकि आप सुनिश्चित कर सकें कि प्रत्येक सरणी की ऑब्जेक्ट अन्य सरणी के क्रम में हैं? क्या होगा यदि आपको पता नहीं है कि सरणी के अंदर की किसी भी वस्तु में कौन सी कुंजी और मूल्य शामिल हैं ... वे कितने कम क्रम में हैं?
तो आपको अपने [].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);
}));
आप भी अपनी वस्तुओं में से प्रत्येक में कुंजी के सभी के लिए एक बेहतर सामूहिक अभिव्यक्ति बनाने के लिए प्रत्येक वस्तु के लिए एक यात्रा पर इस समारोह का उपयोग कर सकते हैं, और फिर अपने सरणी कि जिस तरह से फ़िल्टर करें।
यह एपीआई जुक्टापोज़ से एक छोटा सा स्निपेट है जो मैंने लगभग पूरा कर लिया है, जो यह करता है, छूट के साथ समानता का ऑब्जेक्ट करता है, एकता ऑब्जेक्ट्स और सरणी संघनन करता है। यदि ये चीजें हैं जो आपको चाहिए या अपनी परियोजना के लिए चाहते हैं तो कृपया टिप्पणी करें और मैं बाद में मुक्ति को सुलभ बना दूंगा।
आशा है कि इससे मदद मिलती है! हैप्पी कोडिंग :)
खोज करके आप फ़िल्टर मतलब है? – joragupra