js平分一个数组到两个新数组

js把一个数组,分成两个变量,如果数组最大长度小于等于2就只分给一个变量,另一个为空数组 function splitArray(arr) { if (arr.length <= 2) { const [first = [], second = []] = [arr, []]; return [first, second]; } else { const mid = Math.ceil(arr.length / 2); const [first, second] = [arr.slice(0, mid), arr.slice(mid)]; if (first.length - second.length > 1) { const newMid = mid + 1; return [arr.slice(0, newMid), arr.slice(newMid)]; } else { return [first, second]; } } } // 测试 const array1 = [1, 2, 3, 4, 5]; const [result1, result2] = splitArray(array1); console.log(result1); // 输出:[1, 2, 3] console.log(result2); // 输出:[4, 5] const array2 = [1, 2]; const [result3, result4] = splitArray(array2); console.log(result3); // 输出:[1] console.log(result4); // 输出:[2] const array3 = [1]; const [result5, result6] = splitArray(array3); console.log(result5); // 输出:[1] console.log(result6); // 输出:[] 我们使用了Math.ceil来获取数组的中间位置,然后根据中间位置将数组分成两部分。如果分割后的两个数组的长度相差超过1,我们会调整分割位置,确保它们的长度相差不超过1。通过这个修改后的函数,您可以确保分割后的两个数组的长度相差不超过1。

前端技术 2024-01-05 352浏览

layer关闭层的操作说明

//当你想关闭当前页的某个层时 var index = layer.open(); var index = layer.alert(); var index = layer.load(); var index = layer.tips(); //正如你看到的,每一种弹层调用方式,都会返回一个index layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可 //如果你想关闭最新弹出的层,直接获取layer.index即可 layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的 //当你在iframe页面关闭自身时 var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭 ayer.closeAll(type) - 关闭所有层 如果你很懒,你不想去获取index你只想关闭。那么closeAll真的可以帮上你。如果你不指向层类型的话,它会销毁掉当前页所有的layer层。当然,如果你只想关闭某个类型的层,那么你可以 layer.closeAll(); //疯狂模式,关闭所有层 layer.closeAll('dialog'); //关闭信息框 layer.closeAll('page'); //关闭所有页面层 layer.closeAll('iframe'); //关闭所有的iframe层 layer.closeAll('loading'); //关闭加载层 layer.closeAll('tips'); //关闭所有的tips层

前端技术 2023-10-18 473浏览