gpt4 book ai didi

javascript - 读取函数内另一个 if 条件中变量的值

转载 作者:行者123 更新时间:2023-12-03 00:13:32 25 4
gpt4 key购买 nike

我定义了从 JSON 获取数据并将其传递到渲染中的函数。但我必须设置两个不同的条件来处理数据。

下面是函数:

filterItems = () => {
let result = [];
const { searchInput } = this.state;
const filterbrandsnew = this.props.tvfilter.brand;
if (filterbrandsnew) {
let value = filterbrandsnew[0].options.map(({catgeory_name})=>catgeory_name);
console.log (value);
}
const brand = value;
if (searchInput) {
result = this.elementContainsSearchString(searchInput, brand);
} else {
result = brand || [];
}
return result;
}

我想要这个 const 中的值 constbrand = value;

在渲染方法中访问数据,如下所示:

render() {
const filteredList = this.filterItems();
return (
<div className="filter-options">
<ul className="languages">
{filteredList.map(lang => (
<li
className={lang === this.props.selectedLanguage ? 'selected' : ''}
onClick={this.props.onSelect.bind(null, lang)}
key={lang}
>
{lang}
</li>
))}
</ul>
</div>
);
}

最佳答案

在你的例子中

if (filterbrandsnew) {
let value = filterbrandsnew[0].options.map(({catgeory_name})=>catgeory_name);
console.log (value);
}

if 语句内的代码创建一个单独的作用域,这意味着在其中定义的任何变量都无法在外部作用域中访问。

您可以做的是将 value 变量定义移动到外部范围

let value
if (filterbrandsnew) {
value = filterbrandsnew[0].options.map(({catgeory_name})=>catgeory_name);
console.log (value);
}

这样,value 如果从未输入过 if 语句,则将包含 undefined,如果输入了,则将包含您需要的结果。

关于javascript - 读取函数内另一个 if 条件中变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54615285/

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