javascript - 转换和过滤动态 JSON 返回的对象
问题描述
我不知道如何实现这一点,
我有这个对象,它是一个返回的 JSON:
[
{ first_dynamic_property: 'something', second_dynamic_property: 'something else' },
{ first_dynamic_property: 'something 2', second_dynamic_property: 'something else 2' },
{ first_dynamic_property: 'something 3', second_dynamic_property: 'null' },
{ first_dynamic_property: 'something', second_dynamic_property: 'something else' },
]
我想将此对象转换为新对象,例如:
[
{ first_dynamic_property: 'something' },
{ first_dynamic_property: 'something 2' },
{ first_dynamic_property: 'something 3' },
{ second_dynamic_property: 'something else' }
]
如果您看,该对象过滤了重复的对象并将两项转换为一项对象。我不记得如何实现这一点。你知道最好的方法吗?
谢谢并恭祝安康。
编辑1:
我使用first_dynamic_property和second_dynamic_property因为我不知道键名或它们的数量。它们是动态生成的。
解决方案
根据新要求更新:
let dataList = [
{ first_dynamic_property: 'something', second_dynamic_property: 'something else' },
{ first_dynamic_property: 'something 2', second_dynamic_property: 'something else 2' },
{ first_dynamic_property: 'something 3', second_dynamic_property: 'null' },
{ first_dynamic_property: 'something', second_dynamic_property: 'something else' },
]
let values = new Set();
let result = dataList.map(data => {
let newData = {};
for (let key in data) {
let value = data[key];
if (values.has(value)) continue;
values.add(value);
newData[key] = value;
break;
}
return newData;
})
console.info(result)
推荐阅读
- python - 关于根据 if 条件替换列表列表中的条目的基本问题
- javascript - 通过 Ajax 将 JS 数组传递给 PHP
- php - 在 html 属性中包含 php 标签
- c++ - C++ 通过引用传递还是通过值传递?
- windows - autohotkey:模拟鼠标按住
- java - 线程“main”java.sql.SQLException 中的异常:用户 ''@'localhost' 的访问被拒绝(使用密码:否)
- reactjs - 如何在 React 中使用“react-bulma-components”设置下拉按钮和下拉菜单的宽度,以便它们的宽度填充父 div?
- php - 使用 PHP 在 URL 中编码 unicode 字符?
- html - 带有水平列表的 Flexbox 添加一个 padding-left
- eslint - 对于 no-unused-vars,我如何在 ESLint 中获得警告而不是错误?