jQuery检查索引值的一部分

时间:2019-01-24 15:25:22

标签: javascript jquery arrays

我有一个数组或对象,我需要找到一个包含字符串一部分而不是与该键关联的值的键。 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和主题,然后提交到另一个网址。

1 个答案:

答案 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));