[英]How to get get not matching objects from two json array in javascript
[英]How to get objects in between two selected objects from Json array?
var allUsers = [{id:1},{id:2},{id:3},{id:4},{id:5}]
var selectedUsers = [{id:1},{id:4}]
我該如何退貨?
var remainingUsers = [{id:1},{id:2},{id:3},{id:4}]
希望這對你有用
var allUsers = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }] var selectedUsers = [{ id: 4 }, { id: 1 }] function compare(a, b) { let comparison = 0; if (a.id > b.id) { comparison = 1; } else if (a.id < b.id) { comparison = -1; } return comparison; } selectedUsers = selectedUsers.sort(compare) var remainingUsers = allUsers.slice(allUsers.findIndex(x => x.id == selectedUsers[0]['id']), allUsers.findIndex(x => x.id == selectedUsers[1]['id']) + 1) console.log(remainingUsers);
你可以使用這種方法
var allUsers = [{id:1},{id:2},{id:3},{id:4},{id:5}]
var selectedUsers = [{id:1},{id:4}]
function getRemaining(allUsers, selectedUsers){
var rem = [];
var start = false;
var stop = false;
allUsers.map((x)=>{
if(x.id == selectedUsers[0].id){ start = true; rem.push(x) }
if(x.id == selectedUsers[1].id){ stop = true; rem.push(x) }
if(start && !stop){
rem.push(x)
}
})
return rem
}
getRemaining(allUsers, selectedUsers)
var remainingUsers = allUsers.slice(allUsers.findIndex(x=>x.id == selectedUsers[0].id),allUsers.findIndex(x=>x.id == selectedUsers[1].id)+1)
您可以使用切片。
var allUsers = [{id:1},{id:2},{id:3},{id:4},{id:5}] var selectedUsers = [{id:1},{id:4}] var remainingUsers = allUsers.slice(allUsers.findIndex(x=>x.id == selectedUsers[0].id),allUsers.findIndex(x=>x.id == selectedUsers[1].id)+1) console.log(remainingUsers);
我試圖以你給定的價值觀為例。 請看一看。
var alluser = [{id:1},{id:2},{id:3},{id:4},{id:5}]; var selected = [{id:1},{id:4}]; var left_users = new Array(); function check_matchuser(ref_id){ var count = 0; $(selected).each(function(key, value){ if(value.id==ref_id){ count++; } }); if(count>0){ return false; }else{ return true; } }//end of check $(alluser).each(function(key, usersvalue){ var check_status = check_matchuser(usersvalue.id); if(check_status){ var temp_data = {'id': usersvalue.id}; left_users.push(temp_data); } }); console.log(left_users);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
很抱歉我的英文不是很好,也許你可以獲取開始和結束下標,然后使用 splice() 方法。
var allUsers = [{id:1},{id:2},{id:3},{id:4},{id:5}] var selectedUsers = [{id:1},{id:4}] function getBetweens(allUsers,selectedUsers){ var start = allUsers.findIndex((item)=>{ return JSON.stringify(item)==JSON.stringify(selectedUsers[0]) }) var end = allUsers.findIndex((item)=>{ return JSON.stringify(item)==JSON.stringify(selectedUsers[1]) }) betweenArray = allUsers.splice(start,end+1) return betweenArray } console.log(getBetweens(allUsers,selectedUsers),'gets')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.