在我查看此帖之前:How can I find matching values in two arrays? 但它没有帮助我。我真的不明白。所以,如果我在这里解释我的问题,有人可以帮我解决。
我有一个学校项目(我应该匹配用户的位置,标签,人气得分等。 在为两个位置使用算法之前,我想要第一个非精确排序。所以基本上我想比较两个值,如'巴黎'和'巴黎')
我的搜索功能会在内部返回一个带有两个{}的[],因此有两个人匹配我的第一个搜索值(性别)
我正在使用Node.js,我的数据库是MySQL,我的函数到目前为止使用回调和承诺。
所以这是我的第一个对象(它包含我的搜索者的信息)
[ RowDataPacket {
id: 34,
username: 'natedogg',
latitude: 48.8835,
longitude: 2.3219,
country: 'France',
city: 'Paris',
zipcode: 75017 } ]
这是第二个(它包含2个用户)
[ RowDataPacket {
id: 33,
username: 'pablito',
latitude: 48.8921,
longitude: 2.31922,
country: 'France',
city: 'Paris',
zipcode: 75017 },
RowDataPacket {
id: 35,
username: 'tupac',
latitude: 48.8534,
longitude: 2.3488,
country: 'France',
city: 'levallois',
zipcode: 92300 } ]
不,我有这个数据如何检查我的搜索者的位置是否= =我的otherUsersLocation(即使他们超过1个位置) 谢谢你的帮助!
答案 0 :(得分:1)
听起来你基本上想要将第一个对象(搜索数据)与第二个数组中的对象(用户数据)进行比较。你不一定需要比较两个数组,因为你的数据比字符串或数字更复杂。
要比较普通JavaScript中的对象,我会做这样的事情:
// loop through each object in user array
for (object in secondArray) {
// loop through each property in the user object
for (property in object) {
// compare the property of user object with corresponding search object property
if (property === firstArray[0][property]) {
// do something
}
}
}
答案 1 :(得分:0)
我为你编写了一些代码,但是你应该可以将它应用到你的情况中。基本上,我们只是循环遍历我们想要搜索的对象并查看“city”属性。我重命名了一些变量,以使更清楚的事情发生。
var data = {
id: 34,
username: 'natedogg',
latitude: 48.8835,
longitude: 2.3219,
country: 'France',
city: 'Paris',
zipcode: 75017
};
var searchable = [{
id: 33,
username: 'pablito',
latitude: 48.8921,
longitude: 2.31922,
country: 'France',
city: 'Paris',
zipcode: 75017 },
{
id: 35,
username: 'tupac',
latitude: 48.8534,
longitude: 2.3488,
country: 'France',
city: 'levallois',
zipcode: 92300
}];
// this array is just to save obj when we have a match
var found =[];
// loop through each element in our searchable array
for(var i=0;i<searchable.length;++i){
if(data["city"] == searchable[i]["city"]){
// did we find it? push it onto the found array
console.log("found: " + searchable[i]["city"]);
found.push(searchable[i]["username"]);}
}
// look to see if we got what we wanted
console.log(found);
您可以按照相同的步骤匹配数据中的任何内容。
答案 2 :(得分:0)
这就是我设法在我的数组中找到匹配值的方法
if (SecondArray){
// console.log(SecondArray.length); SecondArray.forEach(function(element) { if (firstArray[0].city === element.city) { console.log("element); } }) }