Javascript 如果一个对象仅包含字符串的一部分,如何签入一个对象数组?

Javascript 如果一个对象仅包含字符串的一部分,如何签入一个对象数组?,javascript,arrays,typescript,Javascript,Arrays,Typescript,如果一个对象仅包含字符串的一部分,如何签入一个对象数组 products = [ {id: 'pdc', code: '123456', name: 'pompa'}, {id: 'kbr', code: '2365', name: 'kit kbr'}, {id: 'boiler', code: '23165', name: 'VPB'} ]; 假设我想知道this.products是否包含一个带有“kbr”的对象?而且,正如您所看到的,该对象的名称更长。。比如: const matches

如果一个对象仅包含字符串的一部分,如何签入一个对象数组

products = [
{id: 'pdc', code: '123456', name: 'pompa'},
{id: 'kbr', code: '2365', name: 'kit kbr'},
{id: 'boiler', code: '23165', name: 'VPB'}
];
假设我想知道this.products是否包含一个带有“kbr”的对象?而且,正如您所看到的,该对象的名称更长。。比如:

const matches = this.products.filter(s => s.includes('kbr')); 

谢谢大家!

需要对象的值,然后迭代直到找到匹配项

var products=[{id:'pdc',code:'123456',name:'pompa'},{id:'kbr',code:'2365',name:'kit kbr'},{id:'boiler',code:'23165',name:'VPB'}],
matches=this.products.filter(o=>
一些(v=>v.toString()。包括('kbr'));

console.log(匹配项)您需要对象的值,然后迭代直到找到匹配项

var products=[{id:'pdc',code:'123456',name:'pompa'},{id:'kbr',code:'2365',name:'kit kbr'},{id:'boiler',code:'23165',name:'VPB'}],
matches=this.products.filter(o=>
一些(v=>v.toString()。包括('kbr'));

console.log(匹配项)您可以将所有值组合成一个字符串,并检查它是否包含以下内容:

 const matches = this.products.filter(s => Object.values(s).join("¥").includes('kbr')); 

您可以将所有值组合成一个字符串,并检查它是否包含以下内容:

 const matches = this.products.filter(s => Object.values(s).join("¥").includes('kbr')); 

你就快到了。您只需要访问对象“s”的“name”属性。在这个场景中,我经常快速访问“name”属性

const products=[{id:“pdc”,代码:“123456”,名称:“蓬帕”},{id:“kbr”,代码:“2365”,名称:“kit kbr”},{id:“锅炉”,代码:“23165”,名称:“VPB”}];
const res=products.filter(({name})=>name.includes(“kbr”);

控制台日志(res)你就快到了。您只需要访问对象“s”的“name”属性。在这个场景中,我经常快速访问“name”属性

const products=[{id:“pdc”,代码:“123456”,名称:“蓬帕”},{id:“kbr”,代码:“2365”,名称:“kit kbr”},{id:“锅炉”,代码:“23165”,名称:“VPB”}];
const res=products.filter(({name})=>name.includes(“kbr”);

控制台日志(res)在筛选函数中,您没有指定要检查的字段。 因此,如果要检查name属性,必须编写以下内容:

const matches = this.products.filter(s => s.name.includes('kbr'));

在filter函数中,您没有指定要检查的字段。 因此,如果要检查name属性,必须编写以下内容:

const matches = this.products.filter(s => s.name.includes('kbr'));

您可以在filter方法内部生成数组,并检查某些
值是否与您正在搜索的字符串一致:

const产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
让res=products.filter(o=>
{
返回Object.values(o).some(x=>(“”+x).match(“kbr”);
});

控制台日志(res)
您可以在filter方法内部生成字符串数组,并检查部分
值是否与正在搜索的字符串一致:

const产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
让res=products.filter(o=>
{
返回Object.values(o).some(x=>(“”+x).match(“kbr”);
});

控制台日志(res)您可以对对象值进行字符串化,并查看它是否包含您要查找的子字符串:

const products=[{id:'pdc',code:'123456',name:'pompa'},{id:'kbr',code:'2365',name:'kit kbr'},{id:'boiler',code:'23165',name:'VPB'}];
const result=products.filter(prod=>
Object.values(prod.join(“”).includes('kbr');

console.log(result)
您可以对对象值进行字符串化,并查看它是否包含您要查找的子字符串:

const products=[{id:'pdc',code:'123456',name:'pompa'},{id:'kbr',code:'2365',name:'kit kbr'},{id:'boiler',code:'23165',name:'VPB'}];
const result=products.filter(prod=>
Object.values(prod.join(“”).includes('kbr');

console.log(result)
使用
some
是一种更好的方法,它会在找到某个内容后立即停止。 对于较大的阵列,这将是一个改进:)

产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
const result=products.some(product=>Object.keys(product).some(key=>product[key]。includes('kbr'))

console.log(result)
使用
some
是一种更好的方法,它会在找到某个内容后立即停止。 对于较大的阵列,这将是一个改进:)

产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
const result=products.some(product=>Object.keys(product).some(key=>product[key]。includes('kbr'))
console.log(result)
我将使用Array.find()函数,因为它在第一个匹配对象处停止:

const产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
const testPattern='kbr';
const products contains=(产品、模式)=>
产品。查找(
({id,name})=>
id.indexOf(模式)>=0 | | name.indexOf(模式)>=0
) ? 真:假;
log(`productsContains'${testPattern}':`,productsContains(products,testPattern))我将使用Array.find()函数,因为它在第一个匹配对象处停止:

const产品=[
{id:'pdc',代码:'123456',名称:'pompa'},
{id:'kbr',代码:'2365',名称:'kit kbr'},
{id:'boiler',代码:'23165',名称:'VPB'}
];
const testPattern='kbr';
const products contains=(产品、模式)=>
产品。查找(
({id,name})=>
id.indexOf(模式)>=0 | | name.indexOf(模式)>=0
) ? 真:假;
log(`productsContains'${testPattern}'):`,productsContains(produ