从键值数组中获取值

事实发现者

我有一个带有键值对的数组。

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

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

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

如何将“主题”Value对象Key入变量?

TJ人群

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

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

应该

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

但是,鉴于您已经说过要执行的操作,我看不到需要for-in循环:

我想将键为“主题”的对象的值推入变量。

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"
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章