提前感谢您的帮助.... 如果我有代码列表,我需要在 secretCodes 对象中搜索这些代码并返回相关的机密(名称)以供进一步处理。
"Codes": ["4444", "5555"]
"secretCodes": [
{
"secret": "John",
"value": "4444"
},
{
"secret": "Paul",
"value": "0001"
},
{
"secret": "George",
"value": "0002"
},
{
"secret": "Ringo",
"value": "5555"
},
{
"secret": "Pete",
"value": "0008"
}
]
答案 0 :(得分:1)
如果您想返回与代码数组中的值相对应的秘密名称,您可以这样做:
let secretCodes = [
{ secret: "John", value: "4444" },
{ secret: "Paul", value: "0001" },
{ secret: "George", value: "0002" },
{ secret: "Ringo", value: "5555" },
{ secret: "Pete", value: "0008" },
];
function getSecretName(codes) {
let matchingValues = secretCodes.filter(obj => codes.includes(obj.value));
return matchingValues.map(value => value.secret);
}
console.log(getSecretName(["4444", "5555"]));
// returns ["John", "Ringo"]
答案 1 :(得分:1)
遍历您的项目并将它们存储在变量中。
const secretObjects = [];
secretCodes.forEach(obj => {
if (Codes.includes(obj.value)) {
secretObjects.push(obj)
}
})
答案 2 :(得分:1)
将 secretCodes
和 codes
转换为变量后,这将起作用:
secretCodes.forEach(x =>{
codes.forEach(y =>{
if (x['value'] === y){
console.log(x['secret'])
}
})
})
答案 3 :(得分:1)
像这样管理数据的合适方法是使用数组原型函数。
filter
最适合用于包含数据子集的数组map
最适合将每个元素转换为新的
元素。some
当您想知道数组中的任何元素是否与您要查找的元素匹配时最好使用Codes = ["4444", "5555"]
secretCodes = [
{"secret": "John", "value": "4444"},
{"secret": "Paul", "value": "0001"},
{"secret": "George", "value": "0002"},
{"secret": "Ringo", "value": "5555"},
{"secret": "Pete", "value": "0008"}
]
const filteredCodes = secretCodes.filter(code => Codes.some( el => el === code.value))
console.log(filteredCodes)
const secretNames = filteredCodes.map(code => code.secret)
console.log(secretNames)