$this->Js->object() 根据值自动对其内容进行排序
$this->Js->object() autosorts its content according to value
如果我
注意到正确的话,我很惊讶$this->Js->object()自动对我给出的数组进行排序。我使用 CakePHP 2.0 进行编码 这是我得到的:
在我的控制器中:
$arrayOfPlotPoints = array();
//....
foreach($allFilenames as $key => $value){
$arrayOfPlotPoints[$key]['latitude'] = $value['TransactionDetail']['latitude'];
$arrayOfPlotPoints[$key]['longitude'] = $value['TransactionDetail']['longtitude'];
$arrayOfPlotPoints[$key]['signal_level'] = $value['TransactionDetail']['signal_level'];
$arrayOfPlotPoints[$key]['snr_level'] = $value['TransactionDetail']['snr_level'];
$color = $this->ColorSchema->find('first',array('fields'=>array('ColorSchema.color'),'conditions' =>array('category' => $category, 'upper_bound >=' => $value['TransactionDetail']['snr_level'], 'lower_bound <='=> $value['TransactionDetail']['snr_level'])));
$arrayOfPlotPoints[$key]['color'] = $color['ColorSchema']['color'];
}
//..
在我的视图文件中:
var test = <?php echo $this->Js->object($arrayOfPlotPoints); ?>;
for (var key in test) {
var obj = test[key];
for (var prop in obj) {
color.push(obj['color']);
latitude.push(obj['latitude']);
longitude.push(obj['longitude']);
}
}
我首先调试了 $arrayOfPlotPoints 的值,然后按原样复制了这些值。我尝试提醒在我的 javascript 的 for 循环中获取的值。它们的出现与我之前在控制器中调试的内容不同。就好像它是根据值排序的。这是否意味着 JS 帮助程序自动对其内容进行排序?如果是这种情况,我可以禁用自动排序吗?
对不起,我的错误。多亏了我的这位朋友非常敏锐的眼睛,他发现了我的问题。
我的数组看起来像这样:
Array
(
[0] => Array
(
[latitude] => 14.62163
[longitude] => 121.05123
[signal_level] => -75
[snr_level] => -5
[key] => 0
[color] => #000000
)
[1] => Array
(
[latitude] => 14.6216233333333
[longitude] => 121.051183333333
[signal_level] => -73
[snr_level] => -5
[key] => 1
[color] => #000000
)
[2] => Array
(
[latitude] => 14.6216266666667
[longitude] => 121.051146666667
[signal_level] => -73
[snr_level] => -5
[key] => 2
[color] => #000000
)
[3] => Array
(
[latitude] => 14.62162
[longitude] => 121.051088333333
[signal_level] => -75
[snr_level] => -5
[key] => 3
[color] => #000000
)
[4] => Array
(
[latitude] => 14.6216383333333
[longitude] => 121.051103333333
[signal_level] => -75
[snr_level] => -5
[key] => 4
[color] => #000000
)
..........
依此类推......我上面的代码是它遍历内部数组中的每个键,从而根据每个循环获取的元素数量复制我在 JavaScript 数组中推送的值。我希望我在那里:)说清楚...无论如何,这就是我现在得到的..
for (var key in test) {
var obj = test[key];
// alert(test[key]['latitude']);
latitude.push(test[key]['latitude']);
longitude.push(test[key]['longitude']);
color.push(test[key]['color']);
}
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- $this->Js->object() 根据值自动对其内容进行排序
- Angular在object中的默认排序
- 方法Object.键对字符串类型的键id进行排序
- 排序[Object Object]数组在Javascript中