gpt4 book ai didi

javascript - 如何检查数组中的每一项?

转载 作者:行者123 更新时间:2023-11-30 19:01:52 25 4
gpt4 key购买 nike

我有一个对象数组,并在输入中渲染其中的每个项目,在此部分下,我有一个按钮可以执行某些操作

我想检查每个项目“输入”如果它是空的不要调用按钮上按下的函数

我的代码适用于第一个对象,但不是全部,

状态

 toolsUsed: [
{
id: 0,
name: '..',
price: '..',
count: '..',
},
{
id: 1,
name: '..',
price: '..',
count: '..',
},
...
],
]

这是我的可迭代数组

renderToolsUsed = () => {
const {toolsUsed} = this.state;

return toolsUsed.map(({name, id, price, count}, i) => {
console.log('i', i);
if (
toolsUsed[i].name.length > 0 &&
toolsUsed[i].price.length > 0 &&
toolsUsed[i].count.length > 0
) {
this.setState({valid: true});
}

return(
<View>.....</View>
)
}

按钮功能

 pressed = ()=>{
if(this.state.vaild){
call...
}else{
alert("please fill all fields");
}
}

编辑

回答@SLePort

renderToolsUsed = () => {
const {toolsUsed} = this.state;

return toolsUsed.map((item, i) => {
console.log(item);
this.setState(
{
// ...item,
isValid: ['name', 'price', 'count'].every(
key => item[key].length > 0,
),
},
() => console.log('isValid', this.state.isValid),
);

return (
<View key={i} style={styles.tools}>
<Text>{item.name}</Text>
...
</View>
);
});
};

最佳答案

如果要检查的每个属性都有一个 length > 0,您可以在项目上循环并添加一个 isValid 键。

const toolsUsed = [
{
id: 0,
name: 'first',
price: '2',
count: '4',
},
{
id: 1,
name: 'second',
price: 1,
count: 8,
},
]

const validToolsUsed = toolsUsed.map(item => ({
...item,
isValid: ['name', 'price', 'count']
.every(key => item[key].length > 0 )
})
)

关于javascript - 如何检查数组中的每一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59437589/

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