我从后端收到一个响应,该响应为我提供了一个语言数组,其中一种是默认的,但另外两种语言带有不同的变量。(还需要将它们分开以获取语言字符串)
useEffect(() => {
axios
.get('api')
.then((response) => {
console.log(response.data);
setLanguage([...language, response.data.data.LANGUAGE1_NAME.split("-")[1], response?.data?.data?.LANGUAGE2_NAME == undefined ? 'null' : response.data.data.LANGUAGE2_NAME.split("-")[1], response?.data?.data?.LANGUAGE3_NAME == undefined ? 'null' : response.data.data.LANGUAGE3_NAME.split("-")[1]])
})
.catch((error) => {
console.log(error);
});
}, []);
因此,当我将语言传递给子组件时,在一个场景中,我可能会像这样传递它language["English";null";null"]。所以在子组件中,我在输入中显示它们,我要做的是从列表中删除"null"
。我试过这个
<div>
<input
type="text"
value={language == 'null' ? language.pop() : language}
onChange={(event) => handleItemChanged(event, i)}
placeholder="Language"
/>
</div>
但是它不工作。
如何删除"null"从数组?
有两种方法来实现:
let array = [0, 1, null, 2, 3];
function removeNull(array) {
return array.filter(x => x !== null)
};
其他方式:
const filteredArray = [1, null, undefined, 2].filter(Boolean);
另一种说法:
let a = [1,2,4,6,null,'A',undefined,'B'].filter(x => !x===false);
这里,它也将移除undefined
。
甚至:
let a = [1,2,4,6,null,'A',undefined,'B'].filter(x => x);
事实上,null
是一个string
,您可以过滤您的数组并删除值:
language = language.filter(element => element !== 'null')