APIを使用して検索すると、検索に表示される重複したプレーヤーを削除しようとしています。新しい検索が始まると、プレーヤーはテーブルに留まりますが、特定のAPIには同じプレーヤーが複数重複しています。重複している別のプレイヤーがあるかどうかを確認するための隠れた方法は何でしょうか?同じ変数がすでにテーブルに入っているかどうかをチェックしてそれを削除する方法は?
あなたはテーブルが既に新しい行を追加する前に、プレイヤーのIDを持つ行が含まれているかどうかを確認することができ
function playerseachMSF() {
var searchPlayerFN = $("#searchFN").val().trim();
var searchPlayerLN = $("#searchLN").val().trim();
var searchedPlayer = "";
//allows user to only search for last name and have fist name be optional
if (searchPlayerFN == 0) {
var searchedPlayer = searchPlayerLN;
} else {
var searchedPlayer = searchPlayerFN + "-" + searchPlayerLN;
}
var playerQueryURL = "https://api.mysportsfeeds.com/v1.1/pull/nfl/2017-regular/active_players.json?" + "player=" + searchedPlayer;
$.ajax({
type: "GET",
url: playerQueryURL,
dataType: 'json',
async: true,
headers: {
"Authorization": "Basic " + btoa("chen" + ":" + "testing")
},
}).done(function(response) {
console.log("PlayerSearch MSF - " + playerQueryURL);
var playerResults = response.activeplayers.playerentry;
for (var i = 0; i < playerResults.length; i++) {
//removes any variables with undifined results
if (playerResults[i].team !== undefined) {
var playerResults_FN = playerResults[i].player.FirstName;
var playerResults_LN = playerResults[i].player.LastName;
var playerResults_Position = playerResults[i].player.Position;
var playerResults_Team = playerResults[i].team.Name;
var playerResults_City = playerResults[i].team.City;
var playerResults_CityAbbr = playerResults[i].team.Abbreviation;
var playerResults_IMG = playerResults[i].player.officialImageSrc;
}
if (playerResults[i].player.externalMapping !== null) {
var playerResults_ID = playerResults[i].player.externalMapping.ID;
}
//adds players that match searched name to table
$("#tableSearchList")
.append($("<tr>")
.attr("id", playerResults_ID)
.attr("data-FN", playerResults_FN)
.attr("data-LN", playerResults_LN)
.attr("class", "players")
.append($("<td>").text(playerResults_FN + " " + playerResults_LN))
.append($("<td>").text(playerResults_Team))
.append($("<td>").text(playerResults_Position))
) //<tr> append
} //for loop
// on click for when a player is selected
$(".players").on("click", function() {
$("#resultsBox").show();
$("#searchPanel").hide(1000);
var playerID = $(this).attr("id");
var playerFN = $(this).attr("data-FN");
var playerLN = $(this).attr("data-LN");
arrestRecord(playerFN, playerLN);
playerDisplay(playerID);
displayPlayerStats(playerFN, playerLN);
playerFantasyStats(playerFN, playerLN)
})
"最高" のためのあなたの基準は何ですか?速度?メンテナンス性?最低限のコードですか?後方互換性? ...? 1つの方法は、可能な重複値を配列に格納し、* indexOf *を使用して値が存在するかどうか(つまり重複しているかどうか)を確認してから使用することです。 – RobG
スピードまたは最少のコードが最適です、ご協力ありがとうございます – Daygo27