gpt4 book ai didi

javascript - 根据列中的重复项添加数组作为对象值

转载 作者:行者123 更新时间:2023-12-03 03:15:45 30 4
gpt4 key购买 nike

所以,假设我循环的表格如下所示:

enter image description here

第二列中的每个唯一值都应该是一个对象,并且其中键之一应包含相应行上的所有值。像这样的事情:

skillMatrix[0]: {val: 2, agents: ['val1', 'val2', 'val3'}

就我而言,我被困住了..

    for (i = 0; i < q.length; i++) {
skillMatrix[i] = {}
}

$.ajax(getSkills).done(function (res) {

var sg;

$(res).find('td:nth-child(3)').each(function(){

a = $(this).parent().find('td:nth-child(2)').text();
a = a.split('.');

if(a[1] == '') {
first = a[3];
last = a[2];
}
else {
first = a[2];
last = a[1];
}
reJoin = last + ' ' + first;

var sg = $(this);
sg = sg.text().split('_');
sg = sg[3];

for (i = 0; i < q.length; i++) {
if (q[i] == sg) {
skillMatrix[i].group = sg;
skillMatrix[i].ag = reJoin;
}
}
})

})

最佳答案

首先,您应该收集每一行的唯一值,您可以通过选择每一行并添加第二列的文本(如果它不在包含所有这些唯一值的数组中)来完成。这段代码将解决这个问题:

var arr=[];
$("tr").each(function(){
if(!arr.includes($(this).find('td:eq(1)').text())){
arr.push($(this).find('td:eq(1)').text());
}
})

然后为每个值选择包含声明数组arr的第i值的td:$( "tr td:nth-child(2):contains("+arr[i]+")")

在 foreach 选定的元素之后,获取其父元素,然后搜索包含代理的第一列: $(this).parent().find("td:eq(0)").text() .

将所有这些组合在一个Js 对象中,这些将提供以下演示:

var arr=[];

$("tr").each(function(){
if(!arr.includes($(this).find('td:eq(1)').text())){
arr.push($(this).find('td:eq(1)').text());
}
})
var obj={};
for(var i=0;i<arr.length;i++)
{
var agents=[];
$("tr td:nth-child(2):contains("+arr[i]+")").each(function(){

agents.push($(this).parent().find("td:eq(0)").text());


});

obj[i]= {val: arr[i], agents:agents};
}

console.log(obj);
td{
border:solid 1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>value 1</td>
<td>2</td>
</tr>
<tr>
<td>value 2</td>
<td>3</td>
</tr>
<tr>
<td>value 3</td>
<td>2</td>
</tr>
<tr>
<td>value 4</td>
<td>1</td>
</tr>
</tbody>
</table>

关于javascript - 根据列中的重复项添加数组作为对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776261/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com