我有一个数组或对象,我需要找到一个包含字符串一部分而不是与该键关联的值的键。 inArray
可以这样做吗?还是有其他选择?
示例数组的键为form_iQc2lz6yr7[contactName]
,值为“ John Smith”。我需要在此数组中搜索包含字符串“ [contactName]”的键,因为它可以更改之前的字符串,但是[contactName]
将始终保持不变。然后,我需要将密钥更改为“ contactName”。
示例:
[
{name: "action", value: "someUrl"},
{name: "list", value: "123344"},
{name: "form_iSfMSWen3Y[contactName]", value: ""},
{name: "form_iSfMSWen3Y[email]", value: ""},
{name: "form_iSfMSWen3Y[subject]", value: ""}
]
完整上下文,我需要通过ajax提交此表单,然后在完成后,将form_iSfMSWen3Y [contactName],form_iSfMSWen3Y [email]和form_iSfMSWen3Y [subject]的密钥分别更改为contactName,email和主题,然后提交到另一个网址。
答案 0 :(得分:1)
您可以一次.map()
obj = {
p1_abc: 1,
p2_abc: 2,
p3_def: 3,
p4_abc: 4,
p5_def: 5
}
required_keys = jQuery.map(Object.keys(obj), function(val, i) {
if (val.indexOf("_abc") != -1) {
return obj[val];
}
});
document.write(required_keys);
或者如果您想要键/值,可以这样做
obj = {
p1_abc: 1,
p2_abc: 2,
p3_def: 3,
p4_abc: 4,
p5_def: 5
}
required_keys = jQuery.map(Object.keys(obj), function(val, i) {
if (val.indexOf("_abc") != -1) {
return {[val]:obj[val]};
}
});
document.write(JSON.stringify(required_keys));