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"
]在上面的数据中,我将所有输入值循环到一个数组中,我希望将这些数据分离为集合数据。这意味着每个索引存储在一个数组中。它将如下所示。任何人都知道如何解决这个问题。
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"
}]发布于 2020-04-21 16:28:35
您必须构建一个对象数组,然后使用数组还原按数字分组。
// 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);
发布于 2020-04-21 16:36:31
您可以使用x.a = 1与x["a"] = 1相同的特性来生成新的项属性值以及从源数据中获取命名数组条目的for (var key in object)。
从属性名中提取索引(在本例中,我使用了result[idx] = result[idx] || []
result[idx] = result[idx] || []
x["a"]=value中作为子数组result[idx] = result[idx] || []
.split也会工作得很好,或者是一个正则表达式--在sub-array
x["a"]=value中添加一个新对象,将命名的属性添加到子数组h 219f 220。
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)<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">
https://stackoverflow.com/questions/61346831
复制相似问题