javascript - 按键名称过滤单个 JSON

标签 javascript json

我想在 JS 中创建某种类型的 Laravel only 方法。

我有以下 JSON:

let obj = {
             name: "Wil",
             age: "20",
             id: "1"
          }

还有一个过滤器数组:

let filters = ['name', 'age'];

在本例中,我想要一个带有 2 个参数的函数:

const filterJSON = (object, filters) => {

}

我希望函数返回相同的对象,仅包含我在过滤器数组中传递的键名。

在这种情况下:

{
   name: "Wil",
   age: "20"
}

我尝试使用 .map.filter 但我没有得到我想要的,我找到的示例仅包含对象数组,但是在这种情况下,我需要过滤单个对象。

谢谢。

最佳答案

可以使用简单的reduce()返回一个新对象

let obj = { name: "Wil",age: "20",id: "1"}
let filters = ['name', 'age'];

const filterJSON = (obj, fil) => fil.reduce((a,c) => (a[c] = obj[c], a),{})


console.log(filterJSON(obj, filters))

关于javascript - 按键名称过滤单个 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117413/

相关文章:

javascript - 使用javascript将CSV文件读入数组

javascript - 我可以在内联js中使用defer属性吗?

java - Jackson 忽略层次结构嵌套类中的 @JsonIgnore 注释

javascript - 如何将 JSON 对象作为新级别添加到另一个 JSON 对象?

c# - 使用 Angular 发布将两个参数传递给 WEB API 调用

json - 不能在 *ngFor : angular2 中使用 *ngIF

javascript - if , else if - javascript 函数只工作一次

javascript - React jest - 你不应该在 <Router> 之外使用 <Link>

java - 比较两个字段时出错

javascript - Dexie - 数据库打开时无法添加版本