Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止特定类型的元素存储在数组中?_Javascript_Arrays - Fatal编程技术网

Javascript 如何防止特定类型的元素存储在数组中?

Javascript 如何防止特定类型的元素存储在数组中?,javascript,arrays,Javascript,Arrays,我有一个代码,它有一个存储在数组中的用户输入号码。我想知道如何防止用户在数组中输入负数,并以红色(最好是输入下面的红色文本)显示他们不能输入负数 我能够得到数组,以确定将什么类型的整数放入带有if。。。else语句,但我似乎无法使数组从负数中弹出 点击储存 常量myArray=[]; 常量addData=()=>{ 让inputData=document.getElementById('user_input'); push(parseInt(inputData.value)); log(my

我有一个代码,它有一个存储在数组中的用户输入号码。我想知道如何防止用户在数组中输入负数,并以红色(最好是输入下面的红色文本)显示他们不能输入负数

我能够得到数组,以确定将什么类型的整数放入带有if。。。else语句,但我似乎无法使数组从负数中弹出


点击储存
常量myArray=[];
常量addData=()=>{
让inputData=document.getElementById('user_input');
push(parseInt(inputData.value));
log(myArray);

if(inputData.value这里的问题是,在检查其类型之前,您在数组中推送值。您只需这样做,以防止负数进入数组:



        const myArray = [];


        const addData = () => {
            let inputData = document.getElementById('user_input');
            console.log(myArray);

            if (inputData.value <= 0) {
                console.log("negative int")
            } else if (inputData.value == 0) {
                console.log('nothing entered')
            } else {
                console.log("positive int")
                myArray.push(parseInt(inputData.value));
            }

            inputData.value = ""; 
        }
        document.getElementById('myBtn').addEventListener('click', addData);



常量myArray=[];
常量addData=()=>{
让inputData=document.getElementById('user_input');
log(myArray);

如果(inputData.value,您可以获取数值并检查字符串是否给定,或者该值是否为整数值,或者是否为负数。然后您需要一个函数以特定颜色显示所需消息

此解决方案的特点是,函数接受条件并在满足条件时退出,以防止通过使用链式
else…if…else
结构转到函数的自然端

简而言之,这种方法不需要
else
部件,这在这里是可能的

const
myArray=[],
addData=()=>{
const setMessage=(字符串,颜色='#000000')=>{
message.style.color=颜色;
message.innerHTML=字符串;
}
让inputData=document.getElementById('user\u input'),
message=document.getElementById('message'),
value=+inputData.value;
如果(inputData.value==''){
setMessage('未输入','#bb0000');
返回;
}
inputData.value=“”;
如果(值!==数学地板(值)){
setMessage('no int','#bb0000');
返回;
}
如果(值或,非常简单