简体   繁体   English

使用lodash find从数组中的对象访问值时出现问题

[英]Problem accessing value from object in array with lodash find

So I have an array like so 所以我有一个像这样的数组

images = [ { "id":8471226, "base64Image":"encodedText" }, ... ]

But when I try to access the encodedText in my code I'm getting undefined 但是,当我尝试访问代码中的encodeText时,却变得不确定

let id = 8480948
console.log( _.find(images, { id }) ); // undefined
console.log(id)
console.log(images)

 const images = [{id: 8471226, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477463, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8479407, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477961, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8470619, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8471233, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8471239, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8472382, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8473933, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8475149, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8475151, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8475222, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8475663, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8475791, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8476234, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8476399, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8476474, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8476923, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477355, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477425, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477509, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8477520, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8478401, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8479315, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8480002, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}, {id: 8480948, base64Image: "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}] let id = 8480948 console.log( _.find(images, { id }) ); // undefined 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script> 

When I right click the array and store as global variable in chrome dev tools it is working as intended? 当我右键单击数组并将其存储为chrome开发工具中的全局变量时,它是否按预期工作?

Here's an image of the output 这是输出的图像

在此处输入图片说明

What am I doing wrong? 我究竟做错了什么?

[{"id": 8471226, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477463, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8479407, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477961, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8470619, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8471233, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8471239, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8472382, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8473933, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8475149, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8475151, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8475222, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8475663, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8475791, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8476234, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8476399, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8476474, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8476923, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477355, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477425, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477509, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8477520, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8478401, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8479315, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8480002, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"},
{"id": 8480948, "base64Image": "KAAAAGgAAAAAAAAwvnlmsC+LHdzl+WxWjRcE1u4G8K"}]

Your syntax seems like 100% correct ES6. 您的语法似乎100%正确的ES6。

It appears that the record you wish to find in your array simply does not exist. 您似乎根本不想在数组中找到该记录。

Notice the IDs in your example differ: 请注意,您的示例中的ID不同:

8480948
8471226

I don't know what is the actual problem in your code. 我不知道您的代码中的实际问题是什么。 But this seems to be working for me. 但这似乎对我有用。 I've used array.find method. 我用过array.find方法。 More info about Array.find is here . 有关Array.find的更多信息在这里

 <html> <body> <script> var images = [{ "id":8471226, "base64Image":"encodedText" },{"id":234,"base64Image":"somethingelse"}]; console.log("Finding image of id 23:",findImage(234)); console.log("Finding image of id 8471226:",findImage(8471226)); function findImage(id){ var found = images.find(function(element) { return element.id == id; }); return found; } </script> </body> </html> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM