JavaScript选取(picking)和反选(rejecting)对象的属性方

网络编程 2025-03-28 21:41www.168986.cn编程入门

在JavaScript中,对象属性的选取和反选是常见的操作。对于需要从复杂对象中选取特定属性的朋友,这里有一些参考资料供大家参考。

让我们了解一下如何选取对象的属性。想象一下,我们有一个表示数据库表的数组,每个元素都是一个对象,包含多个字段。我们希望仅获取某些字段。这时,我们可以使用“选取”功能。

例如,我们有一个对象`row`,它包含一些嵌套的属性,如'aounts.id','client.name'和'bank.code'。如果我们只想获取'client.name'这个属性,我们可以使用`pick`函数:

```javascript

function pick(obj, keys) {

return keys.map(k => (k in obj ? {[k]: obj[k]} : {})).reduce((res, o) => Object.assign(res, o), {});

}

const row = { 'aounts.id': 1, 'client.name': 'John Doe', 'bank.code': 'MDAKW213' };

pick(row, ['client.name']); // 输出:{ client.name: 'John Doe' }

```

在这个`pick`函数中,我们遍历了键名数组`keys`,如果目标对象`obj`中有这个键名,就返回一个新的对象,其中包含这个键名和对应的值。如果没有,就返回一个空对象。然后我们把所有这些单个键-值对合并到一个对象中。

接下来,如果我们想反选,也就是排除某些属性,我们可以使用`reject`函数。这个函数会过滤掉我们不想包含的属性:

```javascript

function reject(obj, keys) {

return Object.keys(obj)

.filter(k => !keyscludes(k)) // 过滤掉不需要的属性

.map(k => ({[k]: obj[k]})) // 创建新的对象只包含过滤后的属性

.reduce((res, o) => Object.assign(res, o), {}); // 将所有对象合并成一个新的对象

}

// 或者我们可以利用之前写的 pick 函数来实现 reject 功能

function reject(obj, keys) {

const vkeys = Object.keys(obj).filter(k => !keyscludes(k)); // 获取不包含指定键名的键数组

return pick(obj, vkeys); // 使用 pick 函数返回不包含指定键名的对象

}

reject({a: 2, b: 3, c: 4}, ['a', 'b']); // 输出:{c: 4}

```

在这个例子中,我们从对象`obj`中排除了键名在数组`keys`中的属性,得到了一个新的对象,只包含我们想要保留的属性。这种方式非常灵活,可以方便地处理复杂的对象和嵌套属性。在大数据处理中非常实用。以上就是长沙网络推广给大家介绍的JavaScript选取和反选对象的属性方法,希望对大家有所帮助。如果大家有任何疑问或建议,欢迎留言讨论,长沙网络推广会及时回复大家的支持。如果您喜欢这篇文章并希望了解更多关于编程和网络推广的知识,请关注我们的博客或者访问我们的网站,我们将不断更新的技术和实用技巧。在此也感谢大家对狼蚁SEO网站的支持和关注!

上一篇:PHP大神的十大优良习惯 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by