gpt4 book ai didi

带有索引搜索的 JavaScript 范围

转载 作者:行者123 更新时间:2023-11-30 20:47:39 25 4
gpt4 key购买 nike

我有大量用户,由 3 种不同的用户类型组成("Admin""Moderator""User").每个用户都将具有以下属性:("name", "companyId", "type")。

第一个方法 function orchestrateUsers(users)(我已经设法编写了代码)将采用 1 个参数:一个用户数组,并且必须根据用户属性“type”返回一个分组列表。

第二种方法将采用 4 个参数:一个分组列表(第一种方法的结果)、一个要包含在搜索中的用户类型数组、一个表示要过滤的用户属性的字符串和一个表示用户属性。此方法必须根据搜索参数返回一组用户。

我需要第二种方法的帮助。

const users = [{
"name": "Joe",
"companyId": "A2100",
"type": "Admin"
}, {
"name": "Jane",
"companyId": "A2100",
"type": "Moderator"
}, {
"name": "Smith",
"companyId": "A2100",
"type": "User"
}, {
"name": "Smith",
"companyId": "A2100",
"type": "User"
}, {
"name": "Rocket",
"companyId": "A3100",
"type": "Admin"
}, {
"name": "Rick",
"companyId": "A3100",
"type": "User"
}, {
"name": "Tim",
"companyId": "A4100",
"type": "Admin"
}]

function orchestrateUsers(users) {
let result = {};

users.forEach(user => {
if (result[user.type]) result[user.type].push(user.name);
else result[user.type] = [user.name];
});
return result;
}
console.log(orchestrateUsers(users));

//second method
function searchUsers(orchestratedUsers, userTypes, property, value) {
//need help here
userTypes.forEach(userType => {
if (userTypes.find(userType => userType === "User")) {
console.log(userType);
}
});
}

最佳答案

我不明白为什么你需要为第二个版本对用户进行分组并且应该能够使用 Array#filter

过滤器只需要检查 2 个条件...typeuserTypes 数组中并且对象属性匹配输入的 value.

设置值匹配来比较小写字符串并使用部分匹配

const users = [{ "name": "Joe", "companyId": "A2100", "type": "Admin" }, { "name": "Jane", "companyId": "A2100", "type": "Moderator" }, { "name": "Smith", "companyId": "A2100", "type": "User" }, { "name": "Smith", "companyId": "A2100", "type": "User" }, { "name": "Rocket", "companyId": "A3100", "type": "Admin" }, { "name": "Rick", "companyId": "A3100", "type": "User" }, { "name": "Tim", "companyId": "A4100", "type": "Admin" } ]


function searchUsers(array, userTypes, property, value) {
value = value.toLowerCase();// compare both in same case
return array
.filter(o => userTypes.includes(o.type) && o[property].toLowerCase().includes(value))
}

// input variables
const userTypes = ['Admin','User'],
prop = 'name',
value = 'smit';// lowercase partial of "Smith"

const res = searchUsers(users, userTypes, prop , value )
console.log(res)

关于带有索引搜索的 JavaScript 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com