Javascript 部分索引值的jQuery检查

Javascript 部分索引值的jQuery检查,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组或对象,我需要找到一个包含字符串部分的键,而不是与该键关联的值。inArray能做到这一点吗?或者有其他选择吗 示例数组有一个形式为_iQc2lz6yr7[contactName]的键,值为John Smith。我需要在此数组中搜索包含字符串[contactName]的密钥,该字符串才能更改,但[contactName]将始终保持不变。然后我需要把钥匙换成contactName 例如: [ {name: "action", value: "someUrl"}, {name:

我有一个数组或对象,我需要找到一个包含字符串部分的键,而不是与该键关联的值。inArray能做到这一点吗?或者有其他选择吗

示例数组有一个形式为_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提交此表单,完成后,将表单[contactName]、表单[email]和表单[subject]的键分别更改为contactName、email和subject,然后提交到另一个url。

您可以在一个.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 {[val]:obj[val]};
  }

});
document.write(JSON.stringify(required_keys));

对不起,我不明白你的问题。你能为它提供一个提琴或示例代码吗?数组的索引“blabla”的值为“ads”是什么意思?在这种情况下,它不是数组?是对象。我有一个通过ajax提交的表单,并将其序列化。我需要更改索引,因为我实际上将其提交到两个不同的端点,而第二个端点需要索引为不同的名称。数组[oldIndex]=数组[newIndex]。jeff,这将假设我知道原始键,对吗?我需要检查键是否包含字符串的一部分,因为键是在表单加载时随机生成的,但在末尾至少包含[contactName]。如果您编辑问题以显示数组内容和要查找的值的示例,这将非常有帮助,除了您自己尝试实现这一点之外,我们还可以帮助您调试问题My object/array是在窗体上运行serializeArray的结果。因此,我正在检查密钥是否有一个部分字符串…我已经尝试了几次/方法,但它似乎没有按部分字符串匹配密钥,因为我尝试在匹配上控制台记录消息。
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));