Javascript: вернуть несоответствующее значение из многомерных массивов, которые содержат объект - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть два многомерных массива, каждый из которых содержит несколько объектов (ключ / значение). Я хочу, чтобы значения объекта броска цикла находили несоответствующее значение, если найдена запись объекта с несоответствующим значением, которое я пробовал, но я не получил никакого результата. пожалуйста, в чистом Javascript или Jquery или любых других рамках ниже мой код

    var firstarry=[{'name':'alex','age':22,'numbersOne':['111','222','333','444','555'],'location':'iq'},{'name':'jan','age':33,'numbersOne':['999','111','222','333','444'],'location':'in'}];
    var secondarray=[{'name':'aga','age':12,'numbersTwo':['111','222','333','444'],'location':'usa'},{'name':'jan','age':35,'numbersTwo':['111','222','333','444'],'location':'uk'}];
    var un_mached_rows=[]; var tmp_recorder={};
    secondarray.forEach(function(secondarrayElements){
    if(secondarrayElements.hasOwnProperty('numbersTwo'))
        secondarrayElements.numbersTwo.forEach(function(numberoneElements){
            firstarry.forEach(function(firstarryElements){
                if(firstarryElements.hasOwnProperty('numbersOne')){
                    firstarryElements.numbersOne.forEach(function(numbersOneElements){
                        if(secondarrayElements.numbersTwo.indexOf(numbersOneElements)===-1)
                        {
                         tmp_recorder.name = firstarryElements.name;
                          tmp_recorder.age = firstarryElements.age;
                          tmp_recorder.location = firstarryElements.location;
                          tmp_recorder.numbers = numberOneElements;
                          un_mached_rows.push(tmp_recorder);
                          tmp_recorder;  
                        }

                    });
                }
            });
        });
    });
    conslole.log(un_mached_rows);

Цикл I должен возвращать массив, содержащий два объекта, например un_mached_rows=[{'name':'alex','age':22,'numbers':'555','location':'iq'},{'name':'jan','age':33,'numbers':'999','location':'in'}]

но это не работает должным образом, я в замешательстве, пожалуйста, помогите

1 Ответ

0 голосов
/ 29 апреля 2018

    var firstarry=[
    {
    	'name':'alex',
    	'age':22,
    	'numbersOne':['111','222','333','444','555'],
    	'location':'iq'
    },{
    	'name':'jan',
    	'age':33,
    	'numbersOne':['999','111','222','333','444'],
    	'location':'in'
    	}
    ];
    var secondarray=[
    {
    	'name':'aga',
    	'age':12,
    	'numbersTwo':['111','222','333','444'],
    	'location':'usa'
    	},{
    		'name':'jan',
    		'age':35,
    		'numbersTwo':['111','222','333','444'],
    		'location':'uk'
    		}
    ];


    var un_mached=[];

    for(var seckey in secondarray){
    	  var numbersTwo=secondarray[seckey].numbersTwo;
    	  for(var firkey in firstarry){
    	  	  numbersOne=firstarry[firkey].numbersOne;;
              for(var nokey in numbersOne){
              	 var numbersOne_el=numbersOne[nokey];
              	 if($.inArray(numbersOne_el, numbersTwo) === -1) {
              	 	delete firstarry[firkey].numbersOne;
              	 	firstarry[firkey].numbers=numbersOne_el;
                    un_mached.push(firstarry[firkey]);
                    delete firstarry[firkey];
              	 }
              }

    	  }
    }

    console.log(un_mached);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...