请在此处查看代码
move_from, move_to = [
(item['path'], prev_item['path']),
(prev_item['path'], item['path']),
][item['op'] == 'add']
Run Code Online (Sandbox Code Playgroud)
分配给move_from和move_to的内容.它看起来像双重赋值,但没有看到右边的两个(我是一个非python程序员)我试图移植到Javascript,它会是什么样子?
谢谢.
这个
[
(item['path'], prev_item['path']),
(prev_item['path'], item['path']),
]
Run Code Online (Sandbox Code Playgroud)
是一个Python列表.第一个(0)项是
(item['path'], prev_item['path'])
Run Code Online (Sandbox Code Playgroud)
第二个(1)是
(prev_item['path'], item['path'])
Run Code Online (Sandbox Code Playgroud)
这里的布尔值
[item['op'] == 'add']
Run Code Online (Sandbox Code Playgroud)
计算为True的假(1或0),以便选择其中一个项目.
例如,如果item ['op']等于'add',则结果为
move_from, move_to = prev_item['path'], item['path']
Run Code Online (Sandbox Code Playgroud)
编辑:你问了JS代码.这可能会这样做.请注意,我假设大多数变量都是全局变量,因为我不知道您将在何种上下文中使用它.
String.prototype.rsplit = function(sep, maxsplit) {
var split = this.split(sep);
return maxsplit ? [ split.slice(0, -maxsplit).join(sep) ].concat(split.slice(-maxsplit)) : split;
}
function _optimize_using_move(prev_item, item) {
prev_item['op'] = 'move';
if (item['op'] == 'add') {
prev_item['from'] = prev_item['path'];
prev_item['path'] = item['path'];
} else {
var parts = move_from.rsplit('/', 1);
head = parts[0];
move_from = parts[1];
move_from = int(item['path']) - 1;
prev_item['from'] = head + '/' + item['path'];
prev_item['path'] = prev_item['path'];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |