【问题标题】:How do I dynamically change a key in a for loop如何动态更改 for 循环中的键
【发布时间】:2018-12-17 07:16:57
【问题描述】:

我希望能够在 for 循环中更改键,很难解释我需要什么,所以我根据https://www.w3schools.com/js/tryit.asp?filename=tryjs_loop_for 游乐场制作了一个演示。

我需要能够根据逻辑交换键,因为数组数据键会根据 json 提要而改变,因此无法对键进行硬编码。

提前致谢

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Loops</h2>

<p id="demo"></p>

<script>

var cars = [{"name":"BMW", "colour":"blue"}, {"name":"Volvo", 
"colour":"green"}, {"name":"Saab", "colour":"pink"}, {"name":"Ford", 
"colour":"grey"}, {"name":"Fiat", "colour":"yellow"}, {"name":"Audi", 
"colour":"silver"}];

var text = "";
var i;
for (i = 0; i < cars.length; i++) {

var keyToChoose = "name"; /// or I could choose "colour"

text += cars[i].keyToChoose + "<br>";  /// how do I dynamically change 'keyToChoose'?

}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

【问题讨论】:

    标签: javascript arrays javascript-objects


    【解决方案1】:

    你是这样使用它的。

    text += cars[i][keyToChoose] + "<br>";
    

    现在它取决于变量 keyToChoose 的值。

    【讨论】:

    • 谢谢!这让我目瞪口呆了好几个小时,保重
    【解决方案2】:

    您可以使用全局变量来决定您的密钥。

    <script>
    
    // 1 = name , 2 = colour
    var currentKey = 1;
    
    var cars = [{"name":"BMW", "colour":"blue"}, {"name":"Volvo", 
    "colour":"green"}, {"name":"Saab", "colour":"pink"}, {"name":"Ford", 
    "colour":"grey"}, {"name":"Fiat", "colour":"yellow"}, {"name":"Audi", 
    "colour":"silver"}];
    
    var text = "";
    var i;
    for (i = 0; i < cars.length; i++) {
    
    // the key is chosen based on the currentKey which can be made a global variable and changed dynamically.
    var keyToChoose = currentKey === 1 ? "name" : "colour";
    
    text += cars[i].keyToChoose + "<br>";  /// how do I dynamically change 'keyToChoose'?
    
    }
    document.getElementById("demo").innerHTML = text;
    </script>
    

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多