名称不同时如何过滤数组保存到新数组中

我想过滤从表单中获得的数组数据。

var form = [
{name: "option_1", value: "A"},
{name: "code_1", value: "36743"}
{name: "option_2", value: "D"},
{name: "code_2", value: "36723"}
{name: "option_3", value: "C"},
{name: "code_3", value: "36543"}
{name: "option_4", value: "B"},
{name: "code_4", value: "36443"}
...
]

我想像这样按名称过滤数组

var option = [ "A", "D", "C", "B"]
var code = [36743, 36723, 36543, 36443]

但我不知道,因为属性名称中有一个数字

回答

您可以filter使用正则表达式形成数组,然后使用map函数选择所需的字段,如下所示:

var form = [
  {name: "option_1", value: "A"},
  {name: "code_1", value: "36743"},
  {name: "option_2", value: "D"},
  {name: "code_2", value: "36723"},
  {name: "option_3", value: "C"},
  {name: "code_3", value: "36543"},
  {name: "option_4", value: "B"},
  {name: "code_4", value: "36443"}
];

let options = form.filter(a => /option_d+/.test(a.name)).map(a => a.value);
let codes = form.filter(a => /code_d+/.test(a.name)).map(a => Number(a.value));

console.log(options, codes);


以上是名称不同时如何过滤数组保存到新数组中的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>