javascript - 如何从外部 js 文件中的 JSON 数组获取变量?

标签 javascript html json

我有一个外部 JS 文件,其中包含 JSON 数组和函数,可帮助我选择一组随机变量。当我尝试在主 HTML 文件中生成结果时,p 标记中没有显示任何内容。我是否不匹配任何对象或变量?

正文部分 HTML 文件的简短示例

<p id="result"></p>
<script src="myJSfile.js" type="text/javascript">
<script language="javascript" type="text/javascript">
document.getElementById("result").innerHTML = lottery(selected.name + selected.age);
</script>

外部 JS 文件的简短示例

function lottery() {
var from, to, selected=new Array();
var person=
    [
     {"name":"Georgia","age":"45"},
     {"name":"John","age":"38"},
     {"name":"Michael","age":"29"},
    ];
    if (arguments[0] == "all") {
      from=0;
      to=person.length;
    }
    else {
      from=Math.floor(Math.random()*3);
      to=Math.floor(Math.random()*3+1);
    }
    for (i=0; i<to; i++) {
        selected[i]=person[from];
        from=(from+1)%3;
    }
    return selected;
   }

最佳答案

您的 fromtoselected 变量在函数外部不可见,只需将此行 var from, to, selected =new Array(); 脱离函数,它应该可以工作。

全部

var from, to, selected = new Array();
lottery('all');
for(var k = 0; k < selected.length; k++){
  document.getElementById("result").innerHTML += selected[k].name + " " + selected[k].age+'<br />';
}

function lottery() {
var person =
    [
     {"name":"Georgia","age":"45"},
     {"name":"John","age":"38"},
     {"name":"Michael","age":"29"},
    ];
    
    if (arguments[0] == "all") {
      from = 0;
      to = person.length;
    }
    else {
      from = Math.floor(Math.random()*3);
      to = Math.floor(Math.random()*3+1);
    }
    
    for (i = 0; i < to; i++) {
        selected[i] = person[from];
        from = (from+1)%3;
    }
    
    return selected;
    
   }
<p id="result"></p>

随机

var from, to, selected = new Array();
lottery('all');
for(var k = 0; k < selected.length; k++){
  document.getElementById("result").innerHTML += selected[k].name + " " + selected[k].age+'<br />';
}

function lottery() {
var person =
    [
     {"name":"Georgia","age":"45"},
     {"name":"John","age":"38"},
     {"name":"Michael","age":"29"},
    ];
    
    if (arguments[0] == "alla") {
      from = 0;
      to = person.length;
    }
    else {
      from = Math.floor(Math.random()*3);
      to = Math.floor(Math.random()*3+1);
    }
    
    for (i = 0; i < to; i++) {
        selected[i] = person[from];
        from = (from+1)%3;
    }
    
    return selected;
    
   }
<p id="result"></p>

关于javascript - 如何从外部 js 文件中的 JSON 数组获取变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43429880/

相关文章:

javascript - 使 HTML_PARSER 在小部件 DataTable 中工作

javascript - 当第三方库触发事件时,我如何告诉 React 组件更改其状态?

html - CSS 背景不适用于 Firefox

html - 如何在控件上添加 5 像素的额外边框?

php - Wordpress:CSS 文件不工作?

javascript - 如何检查对象是否是 JavaScript 中的参数对象?

javascript 我们应该尽可能共享函数还是创建新函数?

javascript - 在 JavaScript 中解析 JSON?

ios - 从 Json 向 NSObject 存储值

arrays - 检查 Express 请求数据是否为数组