我循环遍历一个数组并获取我需要的数据。
for (var i = 0; i < finalArray.length; i++) {
var merchName = finalArray[i].merchName;
var amName = finalArray[i].amName;
var amEmail = finalArray[i].amEmail;
var txnID = finalArray[i].transID;
var transAccount = finalArray[i].transAccount;
}
此时我要做的只是在循环中显示唯一数据。
例如,var transAccount可以在数组中5次。我只有一个在我的桌子上显示一次。我怎样才能完成这个?
Final Array的构造如此;就像一个对象:
finalArray.push({
transID: tmpTrans,
transAccount: tmpAccount,
amEmail: amEmail,
merchName: merchName,
amPhone: amPhone,
amName: amName
});
答案 0 :(得分:0)
var merhcData = {};
var amName = {};
// and so on
for (var i = 0; i < finalArray.length; i++) {
merchData[finalArray[i].merchName] = finalArray[i].merchName;
amName[finalArray[i].amName] = finalArray[i].amName;
// and so on
}
如果您确定,merchName中的数据永远不会等于amName或其他字段 - 您可以使用一个数据对象而不是几个(merchData,amName ...)
答案 1 :(得分:0)
var allTransAccount = {};
for (var i = 0; i < finalArray.length; i++) {
var merchName = finalArray[i].merchName;
var amName = finalArray[i].amName;
var amEmail = finalArray[i].amEmail;
var txnID = finalArray[i].transID;
var transAccount = finalArray[i].transAccount;
if(allTransAccount[finalArray[i].transAccount]) {
var transAccount = '';
}
else {
allTransAccount[transAccount] = true;
}
}
答案 2 :(得分:0)
你想要的可能是Set。 (请参阅zakas for ES6 implementation。要使用javascript来模拟这一点,您可以使用带有密钥的对象作为您的属性之一(帐户将是一个很好的选择,如aperl所说),在使用原始数组之前进行测试。
var theSet={};
for (var i = 0; i < finalArray.length; i++) {
var transAccount = finalArray[i].transAccount;
var merchName = finalArray[i].merchName;
var amName = finalArray[i].amName;
var amEmail = finalArray[i].amEmail;
var txnID = finalArray[i].transID;
if(!theSet[transAccount]){
//add to your table
theSet[transAccount]===true;
}
这将阻止重复数据的输入。