JavaScript 函数变量

标签 javascript arrays variables filter find

有人可以帮我修复这个功能吗?如果我将两个变量更改为整数(即​​:“987”),它将起作用,但如果我将它们更改为“test”之类的字符值,它将不会搜索数组。

我是 JavaScript 新手,如果这是一个简单的修复,请原谅。预先感谢您。

var myArray = [{
  'Vendor': '123',
  'Item': '987',
  'ID': '1'
}, {
  'Vendor': '123',
  'Item': '654',
  'ID': '2'
}];

function findById(source, Vendor, Item) {
  return source.filter(function(obj) {
    return +obj.Vendor === +Vendor, +obj.Item === +Item;
  })[0];
}
var vendin = '123';
var prodin = '654';
var result = findById(myArray, vendin, prodin);
console.log(result.ID);

相关变量是 vendinprodin

最佳答案

你的return语句是错误的,它只会返回最后一条语句的结果:+obj.Item === +Item,你需要使用逻辑运算符&& ,|| 语句之间不是逗号

return +obj.Vendor === +Vendor, +obj.Item === +Item;

应该是

return (+obj.Vendor === +Vendor) && (+obj.Item === +Item);

如果测试字符串,还要删除 +

关于JavaScript 函数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896284/

相关文章:

javascript - 使用 javascript 禁用 a 标签(链接)

javascript - FullCalendar 对象无法理解对象数组参数

c++ - 常数变量乘以用户输入

python - 可以生成动态变量吗?

javascript - 在 HTML 表格中显示/隐藏表格行

javascript - <ul><li> 元素的 jQuery 点击函数

javascript - 在显示器中央打开一个弹出窗口

arrays - Swift:创建具有不同对象实例默认值的数组

arrays - 添加多个表格 View 时访问单元格原型(prototype)

Javascript:从字符串初始化变量?