[英]Printing JavaScript Objects from Associatve Array
如果我只想console.log一個1(ANY)javaScript對象,該怎么辦。 當前,它顯示所有1000。請查看Php和JS文件:
Server.php
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$data = array("coordinates" => array());
$sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data["coordinates"][] = $row;
}
}
echo json_encode($data);
Index.js
{
$.ajax({
dataType: "json",
url: 'server.php',
//data: [],
data: {param: ""},
success: function(data)
{
//JSON.parse(data);
console.log(data);
addMarkers(data,map);
}
});
}
之所以顯示全部,是因為您正在全部記錄。 您將從數據庫調用中返回1000
對象,這就是為什么它記錄了所有對象的原因。
您可以使用類似以下內容的鍵找到單個對象:
data.filter(x => x.myPropValue == "myString");
並記錄下來。
如果您希望JavaScript AJAX調用不記錄所有1000個項目,則可能需要更改php代碼( $sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
),以便每次調用僅發送一個項目(例如,替換1000(帶有1),然后調整服務器邏輯以在下一個AJAX調用中獲得相應的下一項。
這也將使您的服務器和客戶端更快,因為它減少了總數據量,但仍允許1000個或更多的項目。
您也可以嘗試添加一個參數,以便可以告訴php代碼JS代碼需要獲得多少項。
它有助於了解您正在輸出的json數據結構,以及如何訪問由該json生成的對象中的某些元素。 在您的情況下,最終得到一個名為data
對象(由.ajax成功回調定義)。 然后,該對象僅包含一個帶有對象數組的鍵名。 關鍵名稱是coordinates
。 在每個數組值內,是數據庫行返回中的一個對象。
如果您只想顯示對象數組中的一個對象,則只需要這些:
console.log( data.coordinates[0] );
那將顯示數組中的第一個對象(數組以[0]開頭)。
console.log( data.coordinates[999] );
那將顯示數組1000中的最后一個對象。
console.log( data.coordinates[ data.coordinates.length-1 ] );
它將使用自身作為確定器來顯示可變大小數組中的最后一個對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.