• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تفاوت های دو آرایه
#1
سلام
آریه a و b را توی قسمت زیر میبینید، چطوری باید آرایه c و d را به دست بیاریم؟
کد:
var a = [{username:'test',id:'123'},{username:'rand',id:'321'},{username:'first',id:'343'},]
var b = [{username:'test',id:'123'},{username:'rand',id:'321'},{username:'someone',id:'347'}]
var c = مواردی که توی آرایه اول هست و توی دومی نیست
var d = مواردی که توی آرایه اول نیست و توی دومی هست
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#2
http://www.jslab.dk/library/Array.diff
http://jsclass.jcoglan.com/set.html
  پاسخ
تشکر شده توسط :
#3
سلام
روی آرایه که من مثال زدم جواب نمیده اینا.
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#4
کد پی‌اچ‌پی:
Array.prototype.diffCus =
  function() {
    var 
a1 this;
    var 
a2 null;
    var 
0;
    while(
arguments.length) {
      
= [];
      
a2 arguments[n];
      var 
a1.length;
      var 
l2 a2.length;
      var 
diff true;
      for(var 
i=0i<li++) {
        for(var 
j=0j<l2j++) {
          if (
a1[i].username === a2[j].username && a1[i].id === a2[j].id) {
            
diff false;
            break;
          }
        }
        
diff a.push(a1[i]) : diff true;
      }
      
a1 a;
      
n++;
    }
    return 
a;
  }; 

Big GrinBig Grin
  پاسخ
تشکر شده توسط : oia میلاد
#5
سلام
اوکی ظاهرا تابع اماده ای برای مقایسه آرایه های recursive نیست، البته آرایه های منم تقریبا اون شکلیه که گفتم اما فرق داره پس باید همین تابع ها را کاستومایز کرد همین کاری که شما کردی. Big Grin
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#6
نقل قول:سلام
اوکی ظاهرا تابع اماده ای برای مقایسه آرایه های recursive نیست، البته آرایه های منم تقریبا اون شکلیه که گفتم اما فرق داره پس باید همین تابع ها را کاستومایز کرد همین کاری که شما کردی
متاسفانه جاوا اسکریپ توابع زیادی برای آرایه نداره
یعنی در کل به 15 تا نمیرسه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان