在 async.map 运行时对数组进行排序
sort array while async.map running
我使用异步映射来执行函数并为数组中的每个项目获取一些统计信息。
async.map(myarray,myfunc,function(err,res) ...
同时,myarray 可能会通过用户交互进行排序和更改索引。考虑到 myfunc 正在尝试修改数组,这将如何公平。
当你将myarray
传递给async.map()
时,它会同步创建数组的副本。因此,您可以根据需要修改myarray
; async.map()
将只对原始数组的副本进行操作并返回一个新数组。尝试运行以下示例:
var array = [1, 2, 3];
function timesTwo(n, done) {
setTimeout(function() {
done(null, n * 2);
}, 2000);
}
$(document).ready(function() {
setTimeout(function() {
array.pop();
$('#pop').text(array);
}, 1000);
async.map(array, timesTwo, function(err, result) {
$('#result').text(result);
$('#original').text(array);
});
});
span {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/async/1.5.2/async.js"></script>
<p> 0ms: Original array passed to async.map(): <span>1,2,3</span></p>
<p> 1000ms: Pop last item of original array: <span id="pop"></span></p>
<p> 2000ms: Result of async.map(): <span id="result"></span></p>
<p> 2000ms: Original array: <span id="original"></span></p>
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素