过滤数据时,无法读取属性名fieldnamefilter of undefined的错误?

问题描述 投票:0回答:1

我在Angular 7应用程序上工作,当过滤数据时,我面临错误不能读取属性名'fieldnamefilter'of undefined?

过滤名称我是基于变量fieldnamefilter动态获取的。

下面的代码在this.fieldnamefilter上给出了错误。

  contentBody:any[];
 fieldnamefilter:any;

console.log("data values : " + this.fieldnamefilter ) 
//result is data values : onlineURL on console log

// error display on line below filter data[0].this.fieldnamefilter
this.contentBody = data.filter(item =>item != data[0].this.fieldnamefilter);

但如果我把它作为data[0].onlineURL使用,如下图所示,它可以工作。

 //working when use field name direct data[0].onlineURL

this.contentBody = data.filter(item =>item != data[0].onlineURL);

data is have datatype any[];so how to solve this issue;

更新后,我尝试。

console.log(this.fieldnamefilter it give me onlineURL
console.log(data[0][this.fieldnamefilter] it give me N/A
javascript typescript angular7 angular-directive angular-components
1个回答
0
投票
const data = [{onlineurl: 'asdasd'}, {onlineurl: 'xxxx'}];
const fieldnamefilter = 'onlineurl';
const filteredData = data.filter(entry => entry[fieldnamefilter] === data[0][fieldnamefilter]);

这个片段的工作原理,所以我们不能调试代码没有MRE,我不能告诉任何进一步。如果你提供一个 MRE 在Stackblitz或其他地方,我们可以进一步帮助。另外,如果你的数据看起来与此不同,请提供一个样本。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.