小编Chr*_*s J的帖子

Javascript如何从数据对象中删除原型方法或使对象与Qunit等号一起工作

我已经开始与Qunit合作对我的代码进行单元测试,但是在比较对象时遇到了惊人的问题.

我正在测试的代码动态创建一个对象:

var fields = ['id','name'];
var result = {};
for (var field in fields)
{
    var name = fields[field];
    result[name] = name;
}

var expected = { id : 'id', name : 'name' };

test(expected, result, "same ?");
Run Code Online (Sandbox Code Playgroud)

这个测试失败了,我可以看到虽然预期只包含字段id和name,但结果还包含很多函数,例如

"function (iterator, context) {...
Run Code Online (Sandbox Code Playgroud)

我认为这些函数来自于我将对象视为数组以便分配给它.

有没有办法剥离这些功能(或防止它们首先被添加)?

我在考虑做

result = $.parseJSON($.toJSON(result));
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

javascript jquery qunit

8
推荐指数
2
解决办法
8095
查看次数

Kohana 3 ORM as_array 返回 ORM 数组

我正在执行一个简单的查询并想要取回一个数组。根据 Kohana 3 指南附带的 ORM 教程,我认为我可以执行以下操作:

ORM::factory('user')->find_all()->as_array();
Run Code Online (Sandbox Code Playgroud)

但这似乎给了我一个模型对象数组(即数组(User_Model1,User_Model2 ...

查看源代码,我可以通过使用以下补丁轻松解决此问题。

modules/database/classes/kohana/database/result.php
@@ -94,7 +94,7 @@
                        foreach ($this as $row)
                        {
-                               $results[] = $row;
+                               $results[] = $row->as_array();
Run Code Online (Sandbox Code Playgroud)

这似乎更符合用户指南所说的:

ORM 的一个强大功能是 ORM::as_array 方法,它将以数组的形式返回给定的记录。如果与 ORM::find_all 一起使用,将返回所有记录的数组。一个很好的例子是什么时候使用选择列表:

// 显示用户名的选择字段(使用 id 作为值) echo Form::select('user', ORM::factory('user')->find_all()->as_array('id', 'username') ));

想知道这是否是故意的,如果是,为什么?如果我确实想创建一个关联数组的数组,有什么更好的解决方法?

php orm kohana-3 kohana-orm

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×1

jquery ×1

kohana-3 ×1

kohana-orm ×1

orm ×1

php ×1

qunit ×1