빠른 질문입니다. 두 개의 객체 배열이 있고 이러한 객체 배열을 '정렬'하여 각 배열의 객체가 다른 배열의 순서대로 있는지 확인할 수 있다면 어떨까요? 배열 내부의 객체에 어떤 키와 값이 포함되어 있는지 모르는 경우에는 어떻게됩니까? 순서가 짝수보다 훨씬 적습니까?
당신이 당신의 '와일드 카드 식'이 필요 그래서 [].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에 액세스 할 수 있도록 만들겠습니다.
도움이 되었기를 바랍니다! 해피 코딩 :)