博客列表 >数组循环取模及代码实现计算器

数组循环取模及代码实现计算器

我们的关系如此狭窄
我们的关系如此狭窄原创
2021年08月06日 17:59:331229浏览
<?php
/*
 * 1.给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新的数组返回,请封装函数。
 *  2. 尝试实现简单的计算器功能,语言不限制。
 *
*/
$arr = [23,3,45,6,78,8,34];
$newA=[];
$i=0;
//while 循环
while(count($arr) > $i){
    if($arr[$i]%2 == 0) $newA[]=$arr[$i]; //取模
    $i++;
}
print_r($newA);
//do while 循环
$arr = [23,3,45,6,78,8,34];
$newA=[];
$b=0;
do{
    if($arr[$b]%2 == 0) $newA[]=$arr[$b];
    $b++;
}while($b<count($arr));
print_r($newA);
//foreach 循环
$newA=[];
$arr = [23,3,45,6,78,8,34];
foreach ($arr as $k=>$v){
    if($v%2 == 0) $newA[]=$v; //取模
  // gettype($v/2) == 'integer'?$newA[]=$v:'';
  // if(gettype($v/2) != 'integer') unset($arr[$k]);
  // if(gettype($v/2) == 'integer') $newA[]=$v;
}
print_r($newA);
//print_r($arr);

//数组方法array_walk  调用匿名幻术  引用传值  保存数据
$arr = [23,3,45,6,78,8,34];
$newA=[];
$callback = function($v,$k) use (&$newA,&$arr){
    if(gettype($v/2) != 'integer') unset($arr[$k]); //获取运算之后的数据类型  然后判断
    if(gettype($v/2) == 'integer') $newA[]=$v;
};
array_walk($arr,$callback);
print_r($newA);
print_r($arr);
die;
?>
<!--jquery写计算器   未完成 0不能做除数 .不能在之前带点的数字之后 运算时候运算字符串转换成运算也难
%前面必须跟数字  整形或者浮点型  这一些列的判断 整理不好  
  PHP版本的  3个input 等于号提交的相对简单就没写-->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="./layui/css/layui.css"  media="all">
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<div class="layui-main">
    <div class="layui-form-item">
        <div class="layui-input-inline">
            <input name="password" disabled readonly autocomplete="off" class="layui-input layui-disabled text">
        </div>


    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn">clear</button>
        <button type="button" class="layui-btn">delete</button>
        <button type="button" class="layui-btn">%</button>

    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn">1</button>
        <button type="button" class="layui-btn">2</button>
        <button type="button" class="layui-btn">3</button>
        <button type="button" class="layui-btn">+</button>
    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn">4</button>
        <button type="button" class="layui-btn">5</button>
        <button type="button" class="layui-btn">6</button>
        <button type="button" class="layui-btn">-</button>
    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn">7</button>
        <button type="button" class="layui-btn">8</button>
        <button type="button" class="layui-btn">9</button>
        <button type="button" class="layui-btn">*</button>
    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn">0</button>
        <button type="button" class="layui-btn">.</button>

        <button type="button" class="layui-btn">=</button>
        <button type="button" class="layui-btn">/</button>
    </div>
</div>
<script  src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script src="./layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script>
    var strs=new Array(),nums=new Array(),jsu=new Array();



    $('button').click(function () {
        var _this = $(this),val_=_this.html(),_text = $('.text').val();
        let tmp_str = '';
        for (let i =0;i<strs.length;i++){
            tmp_str+=nums[i] + strs[i];
        }
        let tmp_ = _text.replace(tmp_str,'');
        if(!isNaN(val_)){
            if(tmp_.substring(0,1) - 0 > 0 || tmp_.indexOf('.') >= 0 || tmp_ ==''){
                $('.text').val(_text + val_);
            }
        }else{

            let sf = '+-*/';
            switch (val_) {
                case '%':
                    if(tmp_ - 0 > 0) {
                        $('.text').val(_text + val_);
                    }else{
                        if(tmp_.replace('%','') - 0 >0){
                            $('.text').val(_text + val_);
                        }
                    }
                    break;
                case 'clear':
                    $('.text').val('');
                    break;
                case  'delete':
                    let ex = _text.substring(0,_text.length - 1);
                    $('.text').val(ex);
                    break;
                case '=':

                    for (let i =0;i<strs.length;i++){
                       if(strs[i] == '*'){
                           nums[i+1] = nums[i] * nums[i+1];
                           nums[i] = 0;
                           strs[i] = '+';
                       }
                        if(strs[i] == '/'){
                            nums[i+1] = nums[i]  / nums[i+1];
                            nums[i] = 0;
                            strs[i] = '+';
                        }
                    }
                    let sum_ =0;
                    for(let i =0;i<strs.length;i++){
                        if(strs[i] == '+'){
                            nums[i+1] = nums[i] + nums[i+1];

                        }
                        if(strs[i] == '-'){
                            nums[i+1] = nums[i] - nums[i+1];
                        }
                        if(i == strs.length){
                            sum_ = nums[i]
                        }
                     }
                    alert(sum_);
                    break;
                default:
                        if(val_ == '.' && tmp_.indexOf('.') < 0 ){
                            $('.text').val(_text + val_);
                        }
                        if(tmp_ - 0 > 0){
                            if(sf.indexOf(val_) >= 0){
                                nums.push(tmp_);
                                strs.push(val_);

                                $('.text').val(_text + val_);
                            }

                        }



            }

        }



    })
</script>
</body>
</html>


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议