arrays - 搜索 Node js数组与变量部分匹配,返回索引或值

标签 arrays node.js search find contains

大家好,我是 Node 和 js 的新手 - 试图为一个小的不和谐 channel 制作一个小机器人,我有点碰壁,找不到解决方案。

我正在尝试存储用户输入数据并稍后调用。到目前为止,我已经将数据存储为 json 文件。

data[user_id] = value_set
var out_data = JSON.stringify(data);
fs.writeFile('users.json', out_data);

看起来像这样:

{"35978432146597841":"String.1","32146879124653147":"String.2"}

现在我想稍后根据用户的 ID 调用 String.X 值。这就是我被困住的地方。我想我需要读取 json 文件并将其传输到数组中。

我想我成功地将它变成了一个数组,如下所示:

var in_data = fs.readFileSync('users.json');
var data = JSON.parse(in_data);

var arr = []
for(var i in data){
arr.push([i, data [i]]);}

作为... console.log(arr[1]);

显示: ['32146879124653147','字符串.2']

但是我不知道如何通过用户的 id (user_id) 搜索该数组以找到索引,然后拆分该值,或者更好的是直接提取该值。

我尝试通过 user_id 查找“String.X”的所有尝试都失败了。 那么,如果我只知道“32146879124653147”,我需要做什么才能拉出“String.2”。

任何帮助将不胜感激。谢谢。

解决方案

var fs = require("fs");
var in_data = fs.readFileSync('users.json');
var data = JSON.parse(in_data);
var arr = [];

for(var i in data){
    arr.push({
            User:i,
            Input:data [i]
            });
        }
var value = arr.find(x => x.User === id);
var f_value = value.Input;
console.log(f_value);

const userfile = require("./users.json");
var f_value = userfile[userID];

最佳答案

在 Jay 的大力帮助下,这就是我得出的答案。

var fs = require("fs");
var in_data = fs.readFileSync('users.json');
var data = JSON.parse(in_data);
var arr = [];

for(var i in data){
    arr.push({
            User:i,
            Input:data [i]
            });
        }
var value = arr.find(x => x.User === userID);
var f_value = value.Input;
console.log(f_value);

其他

此后我找到了一种更简单的方法来完成上述任务,无需 fs 或创建数组。

const userfile = require("./users.json");
var f_value = userfile[userID];

关于arrays - 搜索 Node js数组与变量部分匹配,返回索引或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719119/

相关文章:

javascript - 如果行和列中的四个元素相同,如何检查二维数组?

node.js - API服务器更新证书后"RequestError: Error: unable to verify the first certificate"错误

javascript - 当类添加调用我的函数或事件时

javascript - 通过 <style> 在 CSS 中使用 JavaScript 函数

PHP 在数组中存储对象引用

node.js - Marklogic 8 nodejs queryBuilder.orderBy SEARCH-BADORDERBY

node.js - 如何在 nodejs 中的 Swagger UI(swagger.json)中的 header 中表示自定义 token

search - 过滤器 SuiteScript 2.0 (NetSuite) 上的运算符 'and' 和 'or'

javascript - elasticsearch-js库中的多字段搜索

c++ - 在 MPI 中拆分和传递数组 block