Javascript 如何将一个对象与一些值的位置获胜的对象数组进行比较';不一样

Javascript 如何将一个对象与一些值的位置获胜的对象数组进行比较';不一样,javascript,zapier,Javascript,Zapier,请注意,我仍然是Javascript的初学者,如果您对我下面的逻辑有任何反馈,我将不胜感激 (此代码是为Zapier编写的)我正在尝试创建一个搜索功能,以便在联系人列表中查找联系人。 静态信息是移动的,包括名字和姓氏。然后,该列表最多可以包含10个自定义字段(可以根据用户的需要命名)。在进行API调用以返回信息时,自定义字段名存储在“fields”对象中,带有字段的键/值对\u n=“Name”。然后在存储联系人信息的recipients对象中使用这些值 我在想,最简单的方法是创建一个对象来存储

请注意,我仍然是Javascript的初学者,如果您对我下面的逻辑有任何反馈,我将不胜感激

(此代码是为Zapier编写的)我正在尝试创建一个搜索功能,以便在联系人列表中查找联系人。 静态信息是移动的,包括名字和姓氏。然后,该列表最多可以包含10个自定义字段(可以根据用户的需要命名)。在进行API调用以返回信息时,自定义字段名存储在“fields”对象中,带有字段的键/值对\u n=“Name”。然后在存储联系人信息的recipients对象中使用这些值

我在想,最简单的方法是创建一个对象来存储用户正在搜索的信息:

var dataEntered = {
    "mobile" : ,
    "firstName" : ,
    "lastName" : ,
    "custom1" : ,
    "custom2" : ,
    "custom3" : ,
    "custom4" : ,
    "custom5" : ,
    "custom6" : ,
    "custom7" : ,
    "custom8" : ,
    "custom9" : ,
    "custom10" : 
};

function checkData () {
    if (mobile !== null) dataEntered.mobile = mobile;
    if (firstName !== null) dataEntered.firstName = firstName;
    if (lastName !== null) dataEntered.lastName = lastName;
    if (custom1 !== null) dataEntered.custom1 = custom1;
    if (custom2 !== null) dataEntered.custom2 = custom2;
    if (custom3 !== null) dataEntered.custom3 = custom3;
    if (custom4 !== null) dataEntered.custom4 = custom4;
    if (custom5 !== null) dataEntered.custom5 = custom5;
    if (custom6 !== null) dataEntered.custom6 = custom6;
    if (custom7 !== null) dataEntered.custom7 = custom7;
    if (custom8 !== null) dataEntered.custom8 = custom8;
    if (custom9 !== null) dataEntered.custom9 = custom9;
    if (custom10 !== null) dataEntered.custom10 = custom10;
};
然后循环浏览列表并将其指定给对象数组:

var listData = [{
    "mobile" : ,
    "firstName" : ,
    "lastName" : ,
    "custom1" : ,
    "custom2" : ,
    "custom3" : ,
    "custom4" : ,
    "custom5" : ,
    "custom6" : ,
    "custom7" : ,
    "custom8" : ,
    "custom9" : ,
    "custom10" : 
}];

for (var i = 0; i < contacts.length; i++) {
    listData[i].mobile = contacts[i].msisdn;
    listData[i].firstName = contacts[i].first_name;
    listData[i].lastName = contacts[i].last_name;
    if (contacts[i][obj.fields.field_1] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_1];
    if (contacts[i][obj.fields.field_2] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_2];
    if (contacts[i][obj.fields.field_3] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_3];
    if (contacts[i][obj.fields.field_4] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_4];
    if (contacts[i][obj.fields.field_5] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_5];
    if (contacts[i][obj.fields.field_6] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_6];
    if (contacts[i][obj.fields.field_7] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_7];
    if (contacts[i][obj.fields.field_8] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_8];
    if (contacts[i][obj.fields.field_9] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_9];
    if (contacts[i][obj.fields.field_10] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_10];
}
var listData=[{
“移动”:,
“名字”:,
“姓氏”:,
“习惯1”:,
“习惯2”:,
“习惯3”:,
“习惯4”:,
“习惯5”:,
“习惯6”:,
“海关7”:,
“习惯8”:,
“习惯9”:,
“海关10”:
}];
对于(变量i=0;i
但是,我遇到的问题是,列表中的自定义数据可能与用户输入数据的顺序不匹配

通过一些研究,似乎返回匹配的最简单方法是两个对象的键/值以相同的顺序进行比较

我是否在正确的轨道上找到了最好的方法

完整代码(到目前为止)

find\u list\u post\u search:函数(bundle){
var obj=JSON.parse(bundle.response.content)[
var联系人=对象收件人;
var mobile=bundle.search\u fields.contact\u number;
var firstName=bundle.search\u fields.first\u name;
var lastName=bundle.search\u fields.last\u name;
var custom1=bundle.search_fields.custom_field1;
var custom2=bundle.search_fields.custom_field2;
var custom3=bundle.search_fields.custom_field3;
var custom4=bundle.search_fields.custom_field4;
var custom5=bundle.search_fields.custom_field5;
var custom6=bundle.search_fields.custom_field6;
var custom7=bundle.search_fields.custom_field7;
var custom8=bundle.search_fields.custom_field8;
var custom9=bundle.search_fields.custom_field9;
var custom10=bundle.search_fields.custom_field10;
输入的var数据={
“移动”:,
“名字”:,
“姓氏”:,
“习惯1”:,
“习惯2”:,
“习惯3”:,
“习惯4”:,
“习惯5”:,
“习惯6”:,
“海关7”:,
“习惯8”:,
“习惯9”:,
“海关10”:
};
变量字段={
“字段_1”:,
“字段2”:,
“字段_3”:,
“字段_4”:,
“字段_5”:,
“字段_6”:,
“字段_7”:,
“字段_8”:,
“字段_9”:,
“字段10”:
};
var listData=[{
“移动”:,
“名字”:,
“姓氏”:,
“习惯1”:,
“习惯2”:,
“习惯3”:,
“习惯4”:,
“习惯5”:,
“习惯6”:,
“海关7”:,
“习惯8”:,
“习惯9”:,
“海关10”:
}];
函数检查字段(){
如果(对象字段!==未定义){
如果(obj.fields.field_1!==null)fields.field_1=obj.fields.field_1;
如果(obj.fields.field_2!==null)fields.field_2=obj.fields.field_2;
如果(obj.fields.field_3!==null)fields.field_3=obj.fields.field_3;
如果(obj.fields.field_4!==null)fields.field_4=obj.fields.field_4;
如果(obj.fields.field_5!==null)fields.field_5=obj.fields.field_5;
如果(obj.fields.field_6!==null)fields.field_6=obj.fields.field_6;
如果(obj.fields.field_7!==null)fields.field_7=obj.fields.field_7;
如果(obj.fields.field_8!==null)fields.field_8=obj.fields.field_8;
如果(obj.fields.field_9!==null)fields.field_9=obj.fields.field_9;
如果(obj.fields.field_10!==null)fields.field_10=obj.fields.field_10;
}
}
函数checkData(){
如果(mobile!==null)输入数据。mobile=mobile;
如果输入(firstName!==null)数据。firstName=firstName;
如果输入(lastName!==null)数据。lastName=lastName;
如果输入(custom1!==null)数据。custom1=custom1;
如果输入(custom2!==null)数据。custom2=custom2;
如果输入(custom3!==null)数据。custom3=custom3;
如果输入(custom4!==null)数据。custom4=custom4;
如果输入(custom5!==null)数据。custom5=custom5;
如果输入(custom6!==null)数据。custom6=custom6;
如果输入(custom7!==null)数据。custom7=custom7;
如果输入(custom8!==null)数据。custom8=custom8;
如果输入(custom9!==null)数据。custom9=custom9;
如果(custom10!==null)
find_list_post_search: function(bundle) {
    var obj = JSON.parse(bundle.response.content)[
    var contacts = obj.recipients;
    var mobile = bundle.search_fields.contact_number;
    var firstName = bundle.search_fields.first_name;
    var lastName = bundle.search_fields.last_name;
    var custom1 = bundle.search_fields.custom_field1;
    var custom2 = bundle.search_fields.custom_field2;
    var custom3 = bundle.search_fields.custom_field3;
    var custom4 = bundle.search_fields.custom_field4;
    var custom5 = bundle.search_fields.custom_field5;
    var custom6 = bundle.search_fields.custom_field6;
    var custom7 = bundle.search_fields.custom_field7;
    var custom8 = bundle.search_fields.custom_field8;
    var custom9 = bundle.search_fields.custom_field9;
    var custom10 = bundle.search_fields.custom_field10;

var dataEntered = {
    "mobile" : ,
    "firstName" : ,
    "lastName" : ,
    "custom1" : ,
    "custom2" : ,
    "custom3" : ,
    "custom4" : ,
    "custom5" : ,
    "custom6" : ,
    "custom7" : ,
    "custom8" : ,
    "custom9" : ,
    "custom10" : 
};

var fields = {
    "field_1" : ,
    "field_2" : ,
    "field_3" : ,
    "field_4" : ,
    "field_5" : ,
    "field_6" : ,
    "field_7" : ,
    "field_8" : ,
    "field_9" : ,
    "field_10" : 
};

var listData = [{
    "mobile" : ,
    "firstName" : ,
    "lastName" : ,
    "custom1" : ,
    "custom2" : ,
    "custom3" : ,
    "custom4" : ,
    "custom5" : ,
    "custom6" : ,
    "custom7" : ,
    "custom8" : ,
    "custom9" : ,
    "custom10" : 
}];

function checkFields () {
    if (obj.fields !== undefined) {
        if (obj.fields.field_1 !== null) fields.field_1 = obj.fields.field_1;
        if (obj.fields.field_2 !== null) fields.field_2 = obj.fields.field_2;
        if (obj.fields.field_3 !== null) fields.field_3 = obj.fields.field_3;
        if (obj.fields.field_4 !== null) fields.field_4 = obj.fields.field_4;
        if (obj.fields.field_5 !== null) fields.field_5 = obj.fields.field_5;
        if (obj.fields.field_6 !== null) fields.field_6 = obj.fields.field_6;
        if (obj.fields.field_7 !== null) fields.field_7 = obj.fields.field_7;
        if (obj.fields.field_8 !== null) fields.field_8 = obj.fields.field_8;
        if (obj.fields.field_9 !== null) fields.field_9 = obj.fields.field_9;
        if (obj.fields.field_10 !== null) fields.field_10 = obj.fields.field_10;
    }
}

function checkData () {
    if (mobile !== null) dataEntered.mobile = mobile;
    if (firstName !== null) dataEntered.firstName = firstName;
    if (lastName !== null) dataEntered.lastName = lastName;
    if (custom1 !== null) dataEntered.custom1 = custom1;
    if (custom2 !== null) dataEntered.custom2 = custom2;
    if (custom3 !== null) dataEntered.custom3 = custom3;
    if (custom4 !== null) dataEntered.custom4 = custom4;
    if (custom5 !== null) dataEntered.custom5 = custom5;
    if (custom6 !== null) dataEntered.custom6 = custom6;
    if (custom7 !== null) dataEntered.custom7 = custom7;
    if (custom8 !== null) dataEntered.custom8 = custom8;
    if (custom9 !== null) dataEntered.custom9 = custom9;
    if (custom10 !== null) dataEntered.custom10 = custom10;
};

checkFields();
checkData();

for (var i = 0; i < contacts.length; i++) {
    listData[i].mobile = contacts[i].msisdn;
    listData[i].firstName = contacts[i].first_name;
    listData[i].lastName = contacts[i].last_name;
    if (contacts[i][obj.fields.field_1] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_1];
    if (contacts[i][obj.fields.field_2] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_2];
    if (contacts[i][obj.fields.field_3] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_3];
    if (contacts[i][obj.fields.field_4] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_4];
    if (contacts[i][obj.fields.field_5] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_5];
    if (contacts[i][obj.fields.field_6] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_6];
    if (contacts[i][obj.fields.field_7] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_7];
    if (contacts[i][obj.fields.field_8] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_8];
    if (contacts[i][obj.fields.field_9] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_9];
    if (contacts[i][obj.fields.field_10] !== undefined) listData[i].custom1 = contacts[i][obj.fields.field_10];
}
var map = new Map();

for(var i < 0; i < map.length; i++)
{
   map["custom" + "i"] = bundle.search_fields["custom_field" + i.toString()];
}
//you can add the other fields here too.