gpt4 book ai didi

javascript - 使用 jquery.map() 进行动态映射

转载 作者:行者123 更新时间:2023-12-03 12:43:32 24 4
gpt4 key购买 nike

我有一系列 ajax json 响应,需要将其转换为常见类型的数组。问题是每个 json 响应都略有不同。

以下是我可能收到的两个回复示例:

var contacts = [{ "ContactId" : "1", "ContactName" : "Bob" },{ "ContactId" : "2", "ContactName" : "Ted" }];
var sites = [{ "SiteId" : "1", "Location" : "MN" },{ "SiteId" : "2", "Location" : "FL" }];

我正在尝试编写一种将任一集合转换为通用类型的方法。上述响应转换的示例如下所示:

var convertedContacts = [{ "value" : "1", "text" : "Bob" },{ "value" : "2", "text" : "Ted" }];
var convertedSites = [{ "value" : "1", "text" : "MN" },{ "value" : "2", "text" : "FL" }];

所以我尝试使用jquery的map函数来满足这个需求。尽管我似乎无法弄清楚如何动态查询将存在的不同属性值,具体取决于我传递到函数中的 json 集合。

这是我正在尝试做的事情的示例:

function ConvertResponse(arrayToConvert, text, value)
{
var a = $.map(arrayToConvert, function(m) {
return "{ \"text\" : "+eval("m."+text)+", \"value\" : "+eval("m."+value)+" }"
});
}

我也尝试过这个:

function ConvertResponse(arrayToConvert, text, value)
{
var a = $.map(arrayToConvert, function(m) {
return "{ \"text\" : " + m.$(text) + ", \"value\" : " + m.$(value) + " }";
});
}

这就是你如何调用它:

var convertedContacts = ConvertResponse(contacts, "ContactName", "ContactId");
var convertedSites = ConvertResponse(contacts, "Location", "SiteId");

不幸的是,这似乎根本不起作用。

最佳答案

像这样吗?

var contacts = [{ "ContactId" : "1", "ContactName" : "Bob" },{ "ContactId" : "2", "ContactName" : "Ted" }];
var sites = [{ "SiteId" : "1", "Location" : "MN" },{ "SiteId" : "2", "Location" : "FL" }];

function convertResponse(response, text, value) {
return $.map(response, function(it) {
return {
value: it[value],
text: it[text]
};
});
}

var convertedContacts = convertResponse(contacts, 'ContactId', 'ContactName');
var convertedSites = convertResponse(sites, 'SiteId', 'Location');

关于javascript - 使用 jquery.map() 进行动态映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com