javascript - 无法检查过滤器内的空验证

标签 javascript arrays

我已经尝试使用三元运算符进行空验证,但它没有返回数据。 下面是我的 json 对象

var data = [ { "name": "test", "domain": "domain1", "subdomain": "subdomain1", "type": "yes" }, { "name": "hello", "domain": "domain2", "subdomain": "subdomain6", "type": "no" }, { "name": "test1", "domain": "domain2", "subdomain": "subdomain6", "type": "no", "desc":"helloo" } ];

下面是我的过滤js代码

 var data = [{
		"name": "test",
		"domain": "domain1",
		"subdomain": "subdomain1",
		"type": "yes"
	},
    {
		"name": "hello",
		"domain": "domain2",
		"subdomain": "subdomain6",
		"type": "no"
	},
    {
		"name": "test1",
		"domain": "domain2",
		"subdomain": "subdomain6",
		"type": "no",
        "desc":"helloo"
	}
    
];

var namesearch = ["hello"];
var result = data.filter((d)=>{return 
namesearch.length > 0 ? namesearch.includes(d.name):''  });
console.log(JSON.stringify(result));

最佳答案

您的代码中有一个小错误。不能在 return 关键字后使用换行符,在这种情况下 javascript 将返回 undefined。

var data = [
  {
    name: "test",
    domain: "domain1",
    subdomain: "subdomain1",
    type: "yes"
  },
  {
    name: "hello",
    domain: "domain2",
    subdomain: "subdomain6",
    type: "no"
  },
  {
    name: "test1",
    domain: "domain2",
    subdomain: "subdomain6",
    type: "no",
    desc: "helloo"
  }
];

var namesearch = ["hello"];
var result = data.filter(d => {
  return namesearch.length > 0 ? namesearch.includes(d.name) : "";
});
console.log(JSON.stringify(result));

关于javascript - 无法检查过滤器内的空验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60027830/

相关文章:

javascript - Play 2.0 - JavaScript 资源中的闭包编译器内部错误

javascript - 在 Firebug 中定义自定义函数

javascript - 向下滚动时词缀元素闪烁

arrays - 使用 Swift 中的变量过滤数组中的结果

Java - 将 Int 转换为 Byte - 奇怪的结果

php - 在 php 数组中搜索部分字符串匹配

javascript - claimBarcodeScanner.SetActiveSymbologiesAsync 的 JavaScript 实现是否有效?

javascript - 使用 Express 如何发送 blob 对象作为响应

c - 表达式必须是可修改的左值(指向结构的指针)

javascript - 如何获取一系列数字之间的 div 元素?