求教两个题应该怎么写?

katakibb 2017-03-13 09:51:34
写一个函数来切割字符串,这个函数接受2个参数,第一个为传入的数组,第二个每个小数组的长度
例如函数名为qiege,则调用函数时,qiege([1,2,3,4,5],2), 返回结果为[[1,2],[3,4],[5]]
qiege([1,2,3,4,5,6],3),返回结果为[[1,2,3],[4,5,6]]。


写一个函数来去除数组中的项,比如函数名为quchu,调用该函数quchu([1,1,2,3,3,4,5,6],1),
则返回结果为[2,3,3,4,5,6],调用该函数quchu([1,1,2,3,3,4,5,6],1,3)则返回结果为[2,4,5,6]。

这两道题一直没有想出来是怎么去写,本人是一名js初学者,求大神帮忙写下代码供我学习理解 非常感谢!!
...全文
196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChengYz_ 2017-03-14
  • 打赏
  • 举报
回复

var ttt = [1, 2, 3, 4, 5];
var qiege = function (arr, len) {
    var res = [];
    var resCount = Math.ceil(arr.length / len);
    for (var i = 0; i < resCount; i++) {
        var tempArr = arr.slice(len * i, len * (i + 1));
        res.push(tempArr);
    }
    return res;
};
console.log(qiege(ttt, 3));

var quchu = function (arr) {
    var res = [];
    if (arguments.length == 1) {
        res = arr;
    } else {
        var remo = [];
        for (var i = 1; i < arguments.length; i++) {
            remo.push(arguments[i]);
        }
        res = arr.filter(function (item) {
            return remo.indexOf(item) == -1;
        })
    }
    return res;
};
console.log(quchu([1, 1, 2, 3, 3, 4, 5, 6], 1));
console.log(quchu([1, 1, 2, 3, 3, 4, 5, 6], 1, 3));
不对之处请指教
似梦飞花 2017-03-14
  • 打赏
  • 举报
回复
splice 第一题 filter第二题
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 2楼scscms太阳光 的回复:
    function qiege(array,len){
        var arr = [],max = 0;
        len = len | 0;
        if(Object.prototype.toString.call(array) == "[object Array]" && len > 0){
            while (array.length > max){
                arr.push(array.slice(max,max + len));
                max += len;
            }
        }
        return arr;
    }

    function quchu(array){
        if(Object.prototype.toString.call(array) == "[object Array]" && arguments.length > 1){
            for(var i = array.length;i--;){
                for(var len = 1;len < arguments.length;len ++){
                    if(array[i] == arguments[len]){
                        array.splice(i,1);
                        break;
                    }
                }
            }
        }
        return array;
    }
非常感谢,多谢大神帮我解答疑惑,我理解一下逻辑和方法
scscms太阳光 2017-03-13
  • 打赏
  • 举报
回复
    function qiege(array,len){
        var arr = [],max = 0;
        len = len | 0;
        if(Object.prototype.toString.call(array) == "[object Array]" && len > 0){
            while (array.length > max){
                arr.push(array.slice(max,max + len));
                max += len;
            }
        }
        return arr;
    }

    function quchu(array){
        if(Object.prototype.toString.call(array) == "[object Array]" && arguments.length > 1){
            for(var i = array.length;i--;){
                for(var len = 1;len < arguments.length;len ++){
                    if(array[i] == arguments[len]){
                        array.splice(i,1);
                        break;
                    }
                }
            }
        }
        return array;
    }
katakibb 2017-03-13
  • 打赏
  • 举报
回复
顶一下,求大神 写下代码 供我学习参考, 非常的感谢!!!

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧