gpt4 book ai didi

javascript - 在 javascript 或 jquery 中比较两种不同的数组类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:57:05 25 4
gpt4 key购买 nike

我有两种不同的数组类型。其中一个是字符串数组,另一个是对象数组;

stringArray = ["P1", "P2", "P3"];
objectArray = [{ P: "P1", PO: 5}, { P: "P3", PO: 10}];

我想把对象数组放到一个表中。字符串数组元素必须是表头。

如果对象数组有 P == "P1" 将 5 放入单元格。否则将空单元格放入行。

我试过了,但这会放置多个空单元格。

这是我的代码 "tKeys"= stringArray, "Ciktilar"= objectArray

var baslikEklendiMi = false;
var satirEkle = function(CalismaTipi, Ciktilar, tKeys)
{
var satir = '<td>' + CalismaTipi + '</td>';
$.each(tKeys, function (i, val) {
if (baslikEklendiMi == false) {
$("#tblBaslik").append("<th>" + val+ "</th>");
}

$.each(Ciktilar, function (j, obj) {
if (val == obj.P) {
satir += '<td><b>' + obj.PO+ '</b></td>';
}
else {
satir += '<td></td>';
}
});
});

baslikEklendiMi = true;
$("#tblListe").append('<tr>' + satir + '</tr>');
}

最佳答案

得到类似的东西:

|--|--|--|--|
|ct|P1|P2|P3|
|--|--|--|--|
|??|5 | |10|
|--|--|--|--|

需要对您的代码进行五处更改:

1) 第 7 行(下):实例化 emptyCell , 分配 false ;

2) 第 9 行:添加 $("#tblBaslik").append("<th>ct</th>")CalismaTipi专栏,

3) 第 25-27 行:移动 satir += '<td></td>'Ciktilar之外循环。

4) 第 22 行:分配 trueemptyCell .

5) 第 18-19 行:重置 emptyCell并退出 Ciktilar循环。

var stringArray  = ["P1", "P2", "P3"];
var objectArray = [{ P: "P1", PO: 5}, { P: "P3", PO: 10}];

var baslikEklendiMi = false;
var satirEkle = function(CalismaTipi, Ciktilar, tKeys)
{
var emptyCell = false; // Line 7
var satir = '<td>' + CalismaTipi + '</td>';
$("#tblBaslik").append("<th>ct</th>"); // Line 9
$.each(tKeys, function (i, val) {
if (baslikEklendiMi === false) {
$("#tblBaslik").append("<th>" + val+ "</th>");
}

$.each(Ciktilar, function (j, obj) {
if (val == obj.P) {
satir += '<td><b>' + obj.PO+ '</b></td>';
emptyCell = false; // Line 18
return false;
}
else {
emptyCell = true; // Line 22
}
});
if (emptyCell) { // Line 24
satir += '<td></td>';
}
});

baslikEklendiMi = true;
$("#tblListe").append('<tr>' + satir + '</tr>');
};
satirEkle('??', objectArray, stringArray);

你需要搬家的原因satir += '<td></td>';外面Ciktilar循环是因为 stringArray列表不直接对应于 objectArray列表。你想检查所有 stringArray元素找到匹配项,如果在所有 stringArray 之后都没有匹配项检查元素然后写一个空单元格。所以,而不是写给 satir在循环中,设置一个 emptyCell标志,并在循环后检查该标志。

JSBin example.

关于javascript - 在 javascript 或 jquery 中比较两种不同的数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37774673/

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