首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据分离成数组中的集合

将数据分离成数组中的集合
EN

Stack Overflow用户
提问于 2020-04-21 15:10:51
回答 2查看 58关注 0票数 1
代码语言:javascript
复制
let data = [];

 $(".clo :input").each(function(index,value){   
      data[this.id] = $(this).val();
 });

 console.log(data); //display data below
[
  agent_dra_0: "0"
  agent_tie_0: "0"
  agent_tiger_0: "0"
  agent_userid_0: "2"
  agent_dra_1: "0"
  agent_tie_1: "k"
  agent_tiger_1: "1"
  agent_userid_1: "4"
]

在上面的数据中,我将所有输入值循环到一个数组中,我希望将这些数据分离为集合数据。这意味着每个索引存储在一个数组中。它将如下所示。任何人都知道如何解决这个问题。

代码语言:javascript
复制
0: [{
  agent_dra_0: "0",
  agent_tie_0: "0",
  agent_tiger_0: "0",
  agent_userid_0: "2"
}

1: {
  agent_dra_1: "0",
  agent_tie_1: "0",
  agent_tiger_1: "0",
  agent_userid_1: "4"
}]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-21 16:28:35

您必须构建一个对象数组,然后使用数组还原按数字分组。

代码语言:javascript
复制
// Try edit message

let x = [
  {agent_dra_0: "0"},
  {agent_tie_0: "0"},
  {agent_tiger_0: "0"},
  {agent_userid_0: "2"},
  {agent_dra_1: "0"},
  {agent_tie_1: "k"},
  {agent_tiger_1: "1"},
  {agent_userid_1: "4"},
];

let xx = x.reduce((xx, item)=>{
  let key = Object.keys(item)[0].split('_').pop();

  xx[key] = (xx[key]) ? xx[key]:[];
  var a = Object.keys(item)[0];
  var b = {};
  b[a] = item[a];
  xx[key].push(b);
  return xx;
},{});
console.log(xx);

票数 0
EN

Stack Overflow用户

发布于 2020-04-21 16:36:31

您可以使用x.a = 1x["a"] = 1相同的特性来生成新的项属性值以及从源数据中获取命名数组条目的for (var key in object)

从属性名中提取索引(在本例中,我使用了result[idx] = result[idx] || []

  • create ),但是如果结果中的条目作为子数组result[idx] = result[idx] || []

  • create存在于sub-array

  • use x["a"]=value中作为子数组result[idx] = result[idx] || []

  • create存在,则.split也会工作得很好,或者是一个正则表达式--在sub-array

  • usex["a"]=value中添加一个新对象,将命名的属性添加到子数组h 219f 220

代码语言:javascript
复制
var data = [];
$(":input").each(function(index, value) {
  data[this.id] = $(this).val();
});
var result = [];
for (var key in data) {
  var idx = key.substr(key.lastIndexOf('_') + 1)
  result[idx] = result[idx] || [];
  var entry = {};
  entry[key] = data[key];
  result[idx].push(entry);
}
console.log(result)
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="agent_dra_0" value="1">
<input id="agent_tie_0" value="2">
<input id="agent_dra_1" value="3">
<input id="agent_tie_1" value="4">

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61346831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档