gpt4 book ai didi

javascript - 枚举到数组的值

转载 作者:行者123 更新时间:2023-12-03 11:56:06 25 4
gpt4 key购买 nike

我在 javascript 中有一个枚举类,如下所示:

var Produce= {
Apple: 1,
Banana: 2,
Tomato: 3,
Orange: 4
}

我可以创建一个包含这些项目的数组,并在 mongo db 查询中使用以下内容:

var fruit = [Produce.Apple,Produce.Banana, Produce.Orange];

这工作正常并返回真实值,如下所示:

fruit[0] = 2(Apple), fruit[1] = 2(Banana), fruit[2] = 4(Orange)

到那时一切都很好。但是,我还需要创建一系列不是水果的元素。实际上,枚举有超过 50 个值并且可以增长。这意味着我需要创建不包含在代码中的值数组。

我已经尝试了以下方法,但没有任何效果。

问题是生产数组无法识别长度或计数

var excludedProduce = [];  

for(var i = 0; i < produce.length ; i++){
if( fruit.indexOf(produce[0]) == -1) //add
excludedProduce .push(produce[0]);

任何帮助将不胜感激!

最佳答案

这将完成这项工作:

var fruit = [Produce.Apple,Produce.Banana, Produce.Orange];
var excludedProduce = [];
for (var p in Produce) {
if (Produce.hasOwnProperty(p)) {
if (fruit.indexOf(Produce[p]) === -1) {
excludedProduce.push(Produce[p]);
}
}
}

说明:

  • 使用 in 遍历 Produce 中的键
  • 使用前确保它们不是原型(prototype)属性
  • 检查该值是否不在水果数组中
  • 如果不是,则将值插入 exceptedProduce 数组

关于您的代码,存在任何几个问题主要是由于您将对象视为数组并期望它像数组一样工作。我建议阅读像 Javascript the Good Parts 这样的书如果您想了解有关该语言的更多信息或使用类似 underscore 的框架将其中的一些抽象出来,并允许您轻松地循环对象并对它们执行其他很酷的辅助操作。

关于javascript - 枚举到数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612667/

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