如何从数组中获取匹配字符串的结果?

时间:2019-10-15 06:07:39

标签: javascript arrays angular7

我有以下数组,当我输入数字'98'时我想显示两个结果,当我输入'983'时我想显示'string 2'的结果,但是当我输入数字'98'时我没有得到任何结果 有人可以帮我在这里做错什么吗?

这是我的以下代码

    var array = [
        { name:"string 1", number:9845687, other: "that" },
        { name:"string 2", number:98325678, other: "that" }
    ];
    
    var foundValue = array.filter(obj=>obj.number===98);
    
    console.log(foundValue);

2 个答案:

答案 0 :(得分:1)

U可以使用includes方法通过以下方式完成此操作

var array = [
    { name:"string 1", number:98456874, other: "that" },
    { name:"string 2", number:98325678, other: "that" }
];

var foundValue = array.filter(obj => {
  let n = obj.number.toString()
  if(n.includes('98')) return obj
});

console.log(foundValue);

希望有帮助

UPDATE

您提到的数字不是字符串,所以您可以在比较之前先将其设置为字符串

答案 1 :(得分:0)

您可以使用indexOf来检查包含子字符串的字符串。

    var array = [
        { name:"string 1", number:9845687, other: "that" },
        { name:"string 2", number:98325678, other: "that" }
    ];
    
    var foundValue = array.filter({
        var str = obj.number.toString();
        return str.indexOf(98) >= 0;
    });
    
    console.log(foundValue);