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