gpt4 book ai didi

JavaScript 将字符串插入对象迭代中

转载 作者:行者123 更新时间:2023-12-01 02:30:29 25 4
gpt4 key购买 nike

我正在为 Angular Pipe 开发一个函数,其中一个参数需要是模板中的字符串 *ngFor="let row of tableRows | filter: searchText : keyName" ,然后用它来迭代管道函数中的对象

在组件中:let keyName = 'name.value'

管道:

transform(items: any[], searchText: string, keyName: string = ''): any[] {
if (!items) {
return [];
}
if (!searchText) {
return items;
}
searchText = searchText.toLowerCase();
console.log(keyName);
return items.filter( it => {
return it.keyName.toLowerCase().includes(searchText); //THIS HERE NEEDS TO MATCH THE STRING PROVIDED
});
}

所以假设参数字符串 name.value 被传递到函数中,it.keyName.toLowerCase() 需要解释为 it.name .value.toLowerCase()

最佳答案

您可以使用property accessor bracket notation (例如object[property])来访问嵌套属性。

例如,尝试使用此处描述的 deepAccessUsingString 函数: https://medium.com/@chekofif/using-es6-s-proxy-for-safe-object-property-access-f42fa4380b2c

function deepAccessUsingString(obj, key){
return key.split('.').reduce((nestedObject, key) => {
if(nestedObject && key in nestedObject) {
return nestedObject[key];
}
return undefined;
}, obj);
}

在代码中使用如下:

return deepAccessUsingString(it, keyName).toLowerCase().includes(searchText);

关于JavaScript 将字符串插入对象迭代中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com