gpt4 book ai didi

javascript - 将数组从一个函数传递到另一个函数

转载 作者:行者123 更新时间:2023-12-03 11:08:47 24 4
gpt4 key购买 nike

我有这段代码,可以从 xml 文件中获取数据。我需要将这些数据提供给当前位于数组中的谷歌图表。我需要将 xml 值传递到 google 图表。谁能帮我解决这个问题。下面是我的代码。

<!DOCTYPE html>
<html>
<head>

<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.js"></script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);

var values = [];

$(document).ready(function() {
$.ajax({
type: "GET",
url: "ChartData.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('Pie').each(function() {
var sTitle = $(this).find('Title').text();
var sValue = $(this).find('Value').text();
values.push([sTitle, sValue]);
});
drawChart(values);
},
error: function() {
alert("An error occurred while processing XML file.");
}
});
});

function drawChart(val) {
alert(val);
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);

var options = {
title: 'My Daily Activities'
};

var chart = new google.visualization.PieChart(document.getElementById('piechart'));

chart.draw(data, options);
}
</script>

<title>My Read</title>
</head>

<body>
<div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
</html>

Xml 文件

<?xml version="1.0" encoding="utf-8" ?>
<Chart>
<Pie>
<Title>Task</Title>
<Value>Hours per Day</Value>
</Pie>
<Pie>
<Title>Work</Title>
<Value>11</Value>
</Pie>
<Pie>
<Title>Eat</Title>
<Value>2</Value>
</Pie>
<Pie>
<Title>Commute</Title>
<Value>2</Value>
</Pie>
<Pie>
<Title>Watch TV</Title>
<Value>2</Value>
</Pie>
<Pie>
<Title>Sleep</Title>
<Value>7</Value>
</Pie>
</Chart>

最佳答案

改变这个

var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);

var data = google.visualization.arrayToDataTable((Array.isArray(val) && val.length) ? val : [
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);

如果值数组且不为空 - 将 val 传递给函数,否则传递默认选项。

您还需要将 sValue 从字符串转换为数字,如下所示

$(xml).find('Pie').each(function() {
var sTitle = $(this).find('Title').text();
var sValue = $(this).find('Value').text();

if (!isNaN(+sValue)) {
sValue = +sValue;
}

values.push([sTitle, sValue]);
});

关于javascript - 将数组从一个函数传递到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27703407/

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