简体   繁体   English

在原始数组的条件下创建具有不同数据结构的新数组的最佳实践是什么?

[英]What is the best practice to create a new array with different data structure on condition from the origin array?

assume I have an array as my origin data set假设我有一个数组作为我的原始数据集

const users = [
{id: 1, name: 'userOne', age: 23, licenseNumber: '95273380'},
{id: 2, name: 'userTwo', age: 21, licenseNumber: '95273381'},
{id: 3, name: 'userThree', age: 18, licenseNumber: ''},
{id: 4, name: 'userFour', age: 2, licenseNumber: '95273382'},
{id: 5, name: 'userFive', age: 77, licenseNumber: null},
{id: 6, name: 'userSix', age: 35, licenseNumber: '95273383'},
]

and now I want to create an new array base on it by conditions and with a new data structure现在我想根据条件和新的数据结构创建一个新的数组

  1. need to filter all users if liscenNumber is empty or null.如果 liscenNumber 为空或 null,则需要过滤所有用户。
  2. create key value pair return (licenseNumber as key, name as value)创建键值对返回(licenseNumber 作为 key,name 作为 value)

(So far i tried filiter() method, But is only handle conditions, there no way i can custom a new data structure to return) (到目前为止,我尝试了 filiter() 方法,但只是处理条件,我无法自定义一个新的数据结构来返回)

Here you are, you can just use filter to filter - then map to build your new array.在这里,您可以只使用filter进行过滤 - 然后map来构建您的新阵列。

 const users = [ { "id": 1, "name": "userOne", "age": 23, "licenseNumber": "95273380" }, { "id": 2, "name": "userTwo", "age": 21, "licenseNumber": "95273381" }, { "id": 3, "name": "userThree", "age": 18, "licenseNumber": "" }, { "id": 4, "name": "userFour", "age": 2, "licenseNumber": "95273382" }, { "id": 5, "name": "userFive", "age": 77, "licenseNumber": null }, { "id": 6, "name": "userSix", "age": 35, "licenseNumber": "95273383" } ] const result = users.filter(x => x.licenseNumber).map(x => ({[x.licenseNumber]: x.name})); console.log(result);

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

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