如何在javascript范围内传达所有表达式

时间:2015-06-15 15:35:21

标签: javascript

这个问题很基础, 以下是我想在javascrtipt中执行的示例代码:

(function getdata(){
  gettrue( true=true );
  gettrue( 1==2 );
  gettrue( 1==1 );
  // write something here to get all three expressions result ? 
  // console.log( [ all three result ] )
})()

gettrue(){}

更新

此问题可用于测试框架:

test("several test result:" , function(){
   assert("test1" , true );
   assert("test2" , false )
 })

function test(title , fn){
   console.log("running: " + title)
   fn()
   // write something here to get all result of assert
   //  not more than 2 lines
  }

function assert(str, test){
   if(test){
     console.log(str +" :  PASS ")
   }else{
     console.log(str +" :  Fail ")
   }
   return test
}

4 个答案:

答案 0 :(得分:2)

您需要将结果存储在某处。事实上,你把所有三个扔掉了。

数组似乎最简单:

(function getdata() {
  var results = [
    gettrue( true==true ),
    gettrue( 1==2 ),
    gettrue( 1==1 )
  ];

  console.log(results);
})()

答案 1 :(得分:0)

我不确定我是否理解这个问题,但你在寻找这样的东西吗?你也不能设置为什么你的意思是真的==是真的吗?

var values = [];

(function getdata(){
  values.push(gettrue( true==true ));
  values.push(gettrue( 1==2 ));
  values.push(gettrue( 1==1 ));

  console.log(values);
})();

function gettrue(val){ return val; }

答案 2 :(得分:0)

作业true=true无效。 gettrue()没有返回任何内容并且缺少参数。

function gettrue(b) { return !!b; }
(function getdata() {
    console.log([
        gettrue(true == true),
        gettrue(1 == 2),
        gettrue(1 == 1),
    ]);
})();

答案 3 :(得分:0)

作为结论,与几位经验丰富的程序员讨论过。 没有触摸getture或断言功能就无法获得所有评估结果。

var count;
(function getdata(){
  count=0 

  gettrue( true );
  gettrue( 1==2 );
  gettrue( 1==1 );

  gettrue( count==3 )
})()

function gettrue(test ){
  console.log( test ) 
  count++
}

对于测试框架,它可能是:

    var count;

    test("several test result:" , function(){
       assert("test1" , true );
       assert("test2" , false )
     })

    function test(title , fn){
       console.log("running: " + title)
       count = 0 ;
       fn()
       var expectTotal = fn.toString().match(/assert/)

       if(expectTotal)
        assert( title , expectTotal.length == count )
      }

    function assert(str, test){
       if(test){
         console.log(str +" :  PASS ")
       }else{
         console.log(str +" :  FAIL ")
       }
       count ++
       return test
    }