gpt4 book ai didi

javascript - 如何在 javascript 对象中正确搜索

转载 作者:行者123 更新时间:2023-11-30 15:53:25 26 4
gpt4 key购买 nike

我有一个简单的 CLI 应用程序,用户可以在其中指定将导入到他的项目中的所有单个对象的类别(类似于 lodash 自定义构建)

为了避免重复数据,我创建了一个对象结构,如:

{
"front": {
"subCategories": [{
"name": "front1",
"value": false
}, {
"name": "front2",
"value": true
}]
},
"other": {
"subCategories": [{
"name": "other1",
"value": false
}, {
"name": "other2",
"value": false
}]
}
}

从用户输入我得到

  • 类别名称,例如string front (但它也可以列出所有类别)
  • 或者对象名称数组,例如['front1', 'other2']

基于此输入,我必须弄清楚是否至少有一个值是 true。只是要注意的问题是不知道用户发送的是类别还是单个对象,我从输入解析器知道:)

所以我需要写2个函数

  1. 对于用户传递给脚本的每个类别(前面,本例中的其他),检查任何子类别中是否至少有一个值是 true,如果是,则停止执行循环以避免无用的性能使用。
  2. 遍历所有子类别没有父项并检查至少一个值是否为 true 其中名称来自输入的对象名称数组,例如['front1', 'other2']

我做了什么尝试:

我可以想象,如果我将 objValue=false; 设置为默认值,然后将 subCategories 对象传递给类似于下面循环内部的代码可能会起作用:

var objValue = _.result(_.find(myObj, function(obj) {
return obj.name === name;
}), 'value');

在我调用它之前,我简单地询问if(objValue) {//code here}

然而,这像是最后一步,我一开始就不知何故迷路了。

如果这里有人可以引导我正确的方法如何:

  • 查找对象中是否有任何值设置为true
  • 如果有一个对象的值设置为 true
  • ,则在所有子类别中查找(它可以比 2 个更多)对象

最佳答案

给你,试试这个:

var data = {
"front": {
"subCategories": [{
"name": "front1",
"value": false
}, {
"name": "front2",
"value": false
}]
},
"other": {
"subCategories": [{
"name": "other1",
"value": false
}, {
"name": "other2",
"value": true
}]
}
}

function searchSubCategories(obj, subCats)
{
var ret = false;
for (var property in obj)
{
for (var i=0; i <obj[property].subCategories.length; i++){
for (var x =0; x < subCats.length; x++)
{
ret = (obj[property].subCategories[i].name === subCats[x] && obj[property].subCategories[i].value === true);
if (ret)
break;
}
if (ret)
break;
}
if (ret)
break;
}
return ret;
}

function searchCategory(obj, category){
var ret = false;
for (var i=0; i <obj[category].subCategories.length; i++)
{
ret = obj[category].subCategories[i].value;
if (ret)
break;
}
return ret;
}

console.log(searchSubCategories(data, ['front1', 'other2']));
console.log(searchCategory(data, 'other'));
console.log(searchCategory(data, 'front'));

关于javascript - 如何在 javascript 对象中正确搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38971698/

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