Как получить один и тот же идентификатор разные значения в объекте массива javascript json - PullRequest
0 голосов
/ 27 декабря 2018

Как получить одинаковые идентификаторы различных значений в объекте массива javascript json и вставить его в массив.

Это фактические данные json,

var data = [{
        "areaid": 25,
        "wardid": 5
    },
    {
        "areaid": 24,
        "wardid": 5
    },
    {
        "areaid": 23,
        "wardid": 5
    },
    {
        "areaid": 22,
        "wardid": 5
    },
    {
        "areaid": 21,
        "wardid": 4
    },
    {
        "areaid": 20,
        "wardid": 4
    },
    {
        "areaid": 19,
        "wardid": 4
    },
    {
        "areaid": 18,
        "wardid": 3
    },
    {
        "areaid": 17,
        "wardid": 3
    },
    {
        "areaid": 16,
        "wardid": 3
    }];

И вывод, который я хочу, для wardid: 3

    [{
        "areaid": 18
    },{
        "areaid": 17
    },{
        "areaid": 16
    }]

для защиты: 4

    [{
        "areaid": 21
    },{
        "areaid": 20
    },{
        "areaid": 19
    }]

1 Ответ

0 голосов
/ 27 декабря 2018

Просто используйте data[i].wardid, чтобы получить идентификатор прихода из простого for loop и сравнить этот же идентификатор с любым значением, которое, в свою очередь, извлекает значение идентификатора области этого же объекта.

В следующем фрагменте кода я добавил соответствующие идентификаторы областей для найденного идентификатора отделения в новый массив, а также в div, чтобы лучше проиллюстрировать код.Проверьте фрагмент кода или этот jsFiddle , чтобы увидеть, как работает следующий код:

/* JavaScript */
var val = document.getElementById("val");
var btn = document.getElementById("btn");
var output = document.getElementById("output");
var outPutArray = [];

function checkId(){
  outPutArray = [];
  output.innerHTML = `<p>The following wards have that ID:</p>`;
  if(!val.value) {
    alert('Please input ID');
  } else {
  	
    for(i=0; i < data.length; i++) {
    	if(data[i].wardid == val.value) {
        var x = {};
        x.warid = data[i].wardid;
        x.areaid = data[i].areaid;   
        outPutArray.push(x);
      	output.innerHTML += `<div>Area ${data[i].areaid}</div>`;
      }
    }
    console.log(outPutArray);
  }  
}

btn.addEventListener("click", checkId);

var data = [{"areaid":25,"wardid":5},{"areaid":24,"wardid":5},{"areaid":23,"wardid":5},{"areaid":22,"wardid":5},{"areaid":21,"wardid":4},{"areaid":20,"wardid":4},{"areaid":19,"wardid":4},{"areaid":18,"wardid":3},{"areaid":17,"wardid":3},{"areaid":16,"wardid":3}];
<!-- HTML -->
<input type="number" id="val" min="3" max="5" name="wardId" />
<button id="btn">
Check Id
</button>
<div id="output">
<p>
The following Areas have that Ward ID:
</p>
</div>
...