【问题标题】:Get Value from Key Value array从键值数组中获取值
【发布时间】:2017-01-04 19:47:01
【问题描述】:

我有一个包含键值对的数组。

var array=[
             {Key:"Name",Value:"Sam" },
             {Key:"Marks",Value:"50"},
             {Key:"Subject",Value:"English"},
          ];

我想将Key 为“主题”的对象的Value 推送到变量中。我试图查看如何访问 Value,但在第一步就失败了。 如何才能做到这一点?

for (var key in array[0])
{
    console.log(key[i].Value); //error:  Cannot read property 'Value' of undefined
}

如何将Key 为“主题”的对象的Value 推送到变量中?

【问题讨论】:

标签: jquery arrays key-value


【解决方案1】:

您的for-in 循环位于array[0] 对象上,因此key 是该对象的键(属性名称)。所以这个:

console.log(key[i].Value);

应该是

console.log(array[0][key].Value);

但是,鉴于您所说的您想要做的事情,我认为不需要 for-in 循环:

我想将 Key 为“Subject”的对象的值推送到变量中。

Array#find(这是 ES2015 中的新功能——又名 ES6——但很容易填充/填充)对此很有用:

var entry = array.find(function(e) { return e.Key === "Subject"; });
if (entry) {
    theVariable = entry.Value;
}

如果您使用的是 ES2015(目前仍意味着转译),您可以使用箭头函数更简洁:

let entry = array.find(e => e.Key === "Subject");
if (entry) {
    theVariable = entry.Value;
}

但如果你想坚持 ES5 及更早版本的东西,有Array#some

array.some(function(e) {
    if (e.Key === "Subject") {
        theVariable = e.Value;
        return true; // stops the "loop"
    }
});

【讨论】:

  • 该死,你的速度很快。
【解决方案2】:

对不起,我之前误解了这个问题 - 已编辑

我建议为此使用jQuery.each() 方法

var array=[ {Key:"Name",Value:"Sam" }, {Key:"Marks",Value:"50"}, {Key:"Subject",Value:"English"}, ]; 

$.each(array, function() { 
     if(this.Key === "Subject"){ 
        this.Value = "something" 
     } 
}); 

console.log(array);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

    【解决方案3】:
    var array=[
            {Key:"Name",Value:"Sam" },
            {Key:"Marks",Value:"50"},
            {Key:"Subject",Value:"English"},
        ];
    var i=0;
    var value;
    for(array as value) {
        value[i]=$(this).text();
        i++;
        alert(value[i]);
    }
    

    用键和值试试这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多