var dataArray = [
{personId: 123, tranId: 1, lineId: 0, info: 'Apples'},
{personId:123, tranId:1, lineId:1, info:'Oranges'},
{personId:145, tranId:2, lineId:0, info:'Bananas'},
{personId:145, tranId:2, lineId:1, info:'Popcorn'},
{personId:145, tranId:2, lineId:2, info:'Mushrooms'}
];
//Don't bother about this
$.each(dataArray, function(colIndex, item){
var row = $('<tr/>');
$.each(item, function(rowIndex, it){
row.append($('<td/>').text(it));
});
$('#data tbody').append(row);
});
// Have an array for filtered objects
var filteredArray = [];
// Iterate through data array
$.each(dataArray, function(index, item){
if(filteredArray.length == 0)
filteredArray.push(item);
// a flag to tell you if the data exists in the filtered array or not
var addItem = true;
// Check if the data exists in the filtered array
var filteredItem = $.grep(filteredArray, function(filItem, filIndex, filAll){
// Here is where you check whatever conditions you want
if(filItem.personId == item.personId && filItem.tranId == item.tranId) {
addItem = false;
return false;
}
});
// Add the data
if(addItem)
filteredArray.push(item);
});
//Don't bother about this
$.each(filteredArray, function(colIndex, item){
var row = $('<tr/>');
$.each(item, function(rowIndex, it){
row.append($('<td/>').text(it));
});
$('#filteredData tbody').append(row);
});
#data{
border: grey 1px solid;
}
#filteredData{
border: grey 1px solid;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="data">
<thead>
<th>PersonID</th>
<th>TranID</th>
<th>LineID</th>
<th>Info</th>
</thead>
<tbody></tbody>
</table>
<br/><br/>
<table id="filteredData">
<thead>
<th>PersonID</th>
<th>TranID</th>
<th>LineID</th>
<th>Info</th>
</thead>
<tbody></tbody>
</table>
혹시 jQuery를 사용하고 계십니까? –
할 수는 있지만 현재는 단순한 자바 스크립트입니다. –
코딩은 정상이지만 처리 방법이 꺼져 있습니다. 알고리즘이 잘못되었습니다. 'transaction' 배열에 저장하는 값은'personId'와'transactionId'에 대한 값을 포함하는 객체 ('{}')와'info' 문자열의 배열이어야합니다. datarows를 통과 할 때마다'transaction' 배열에 일치하는 레코드가 있는지 확인하십시오. (루프를 거치고'transactionId'에서 일치하는 것을 찾으십시오.) 만약 당신이 레코드가 아니라면, 레코드를 생성하고 그것을 푸시해야합니다. 배열,하지만 만약 당신이 다음 레코드를 검색하고 그것에 새로운 정보 문자열을 추가해야합니다. 덕분에 –