用javascript实现给出的盒子的序列是否可连为一矩型_javascript技巧


by cpglkg

<script>
var arr=[5,10,15];

function rect(arr,width)
{
   arr.sort(function(a,b){return a-b;});
   var len = arr.length;
   var temp = arr[0];
   var w = null;
   var h = null;
   for(var i = 0; i < len; i++)
   {
       if((temp + i) != arr[i])
       {
           w = i;
           if (len % w != 0)
               return false;
           h = len/w;
           break;
       }
   }
   var r = width - w;
   temp += r;
   for(var i = w; i < len; i++)
   {
       if(arr[i] != temp + i)
       {
           temp += r;
           if(arr[i] != temp + i)
           {
               return false;
           }
       }
   }

   return true;
}
alert(rect(arr,6));
</script>

by 无殇

<script>
var rows=6;
function ch(array){
array=array.sort(function(a,b){return a-b;})
var n,c=0;
for(var i=1;i<array.length;i++)
if(array[i]-array[i-1]==1)
c++;
else
break;
if(array.length%(c+1)!=0)return false;
for(var i=1;i<array.length;i++)
{
n=array[i]-array[i-1];
if(n!=1 && n+c!=rows)
return false;
}
return true;
}
alert(ch([1,2,3]))
alert(ch([5,6,11,12,17,18,23,24]))
alert(ch([19,25,31]))
alert(ch([1,2,3,4,7,8]))
</script>

by 秦皇也爱JS  

<script>
  var arr = [5,10,15];
  var width = 6;  

  arr = arr.sort(function(a,b){ return a-b});
  var row = Math.ceil((arr[arr.length-1]-arr[0]+1)/width);
  var col = Math.floor(arr.length / row);

  check();
  function check(){
    for(var i=0;i<arr.length-1;i++){
      if(arr[i+1] - arr[i] !=1 && i%col!=col-1 || i%col==col-1 && arr[i+1] - arr[i] != width-col+1){
        alert(false);
        return;
      }
    }
    alert(true);
  }
 </script>

时间: 2024-11-20 14:27:40

用javascript实现给出的盒子的序列是否可连为一矩型_javascript技巧的相关文章

javascript写的简单的计算器,内容很多,方法实用,推荐_javascript技巧

最近用javascript写了一个简单的计算器,自己测试感觉还好,先给大家观赏下界面: 界面就是这样了,但是功能如何呢? 现在只是个简单的标准计算器,能进行加减乘除连续运算,以及求余运算.如果发生被除数为零的错误,下面会给出提示,就像这样: 自己不知道写的怎么样,但是对于新手来说,这肯定是一份大餐,里面可以接触到的东西不少,可以拿来学习.如果有高手看出里面的疏漏.错误等望不吝赐教,给予指点. 下面贴上代码,希望里面的注释足够多了. js部分: 复制代码 代码如下: var num=0,resul

弹出窗口并且此窗口带有半透明的遮罩层效果_javascript技巧

本章节介绍一下如何点击一个按钮实现弹出一个居中窗口,并且此窗口带有半透明的遮罩层效果,此效果在当下比较流行,当然还有更为复杂的实现方式,当然效果也更为绚丽,下面介绍的代码能够简单实现此小姑. 代码如下: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://

JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结_javascript技巧

在这篇文章中,作者介绍了7个JavaScript在IE和Firefox中存在的差异. 1. CSS "float" 值 访问一个给定CSS 值的最基本句法是:object.style.property,使用驼峰写法来替换有连接符的值,例如,访问某个ID为"header"的<div>的 background-color值,我们使用如下句法: document.getElementById("header").style.backgrou

javascript跨域方法、原理以及出现问题解决方法(详解)_javascript技巧

javascript跨域访问是web开发者经常遇到的问题,什么是跨域,一个域上加载的脚本获取或操作另一个域上的文档属性,下面将列出三种实现javascript跨域方法: 1.基于iframe实现跨域      基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain

javascript事件捕获机制【深入分析IE和DOM中的事件模型】_javascript技巧

本文实例分析了javascript事件捕获机制.分享给大家供大家参考,具体如下: 1.什么是事件冒泡? 在排序算法中,我们学过冒泡排序法,所谓冒泡就是让底层的东西浮出水面,对于事件冒泡也同样是如此, 下面我们来看一个例子来说明什么是事件冒泡. <div> <button>测试</button> </div> <script> $("div").bind("click",function(){alert(&q

JavaScript高级程序设计(第三版)学习笔记6、7章_javascript技巧

第6章面向对象的程序设计 对象 1.数据属性 configurable表示能否通过delete删除属性从而重新定义属性能否修改属性的特性或能否把属性修改为访问器属性默认为true enumerbale表示能否通过for-in访问属性默认true writable表示能否修改属性值默认true value数据存储位置默认undefined 修改默认属性特性Object.defineProperty()接收三个参数属性所在对象属性名描述符对象描述符对象属性必须是configurable.enumer

(currentStyle)javascript为何有时用style得不到已设定的CSS的属性_javascript技巧

这是按第2下兰色的横条才开始出效果,就是说第1下没有获得foot.style.display=="none",可是CSS里我定义了 <style type="text/css"> #top {width:100px; background-color:#00CCFF; height:20px} #foot {width:100px; background-color: #CCCC00; height:50px; display:none} </st

基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式_javascript技巧

前言 在面向对象的编程范式中,封装都是必不可少的一个概念,而在诸如 Java,C++等传统的面向对象的语言中, 私有成员是实现封装的一个重要途径.但在 JavaScript 中,确没有在语法特性上对私有成员提供支持, 这也使得开发人员使出了各种奇技淫巧去实现 JS 中的私有成员,以下将介绍下目前实现 JS 私有成员特性的几个方案以及它们之间的优缺点对比. 现有的一些实现方案 约定命名方案 约定以下划线'_'开头的成员名作为私有成员,仅允许类成员方法访问调用,外部不得访问私有成员.简单的代码如下:

JavaScript常用的返回,自动跳转,刷新,关闭语句汇总_javascript技巧

本文实例讲述了JavaScript常用的返回,自动跳转,刷新,关闭语句.分享给大家供大家参考.具体如下: 1. Javascript 返回上一页: 复制代码 代码如下: history.go(-1)返回两个页面: 复制代码 代码如下: history.go(-2)    2. 后退: 复制代码 代码如下: history.back() 3. 返回下一页: 复制代码 代码如下: window.history.forward() 4. 返回第几页,也可以使用访问过的URL: 复制代码 代码如下: w