簡體   English   中英

lodash計算數組元素之間的差異

[英]lodash calculate difference between array elements

在使用lodash的javascript中,我需要一種方法來計算數組元素之間的差異,例如:

與數組
[0,4,3,9,10]
我需要了解每個元素之間的區別。
輸出應該是
[4,-1,6,1]

我將如何使用lodash做到這一點?

在紅寶石中看起來像這樣:
ary.each_cons(2).map { |a,b| ba }

一種可能的解決方案是使用_.map()

 var arr = [0,4,3,9,10]; var result = _.map(arr, function(e, i) { return arr[i+1] - e; }); result.pop(); document.write(JSON.stringify(result)); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.min.js"></script> 

您可以執行以下操作:

var arr = [0, 4, 3, 9, 10];
var res = [];
_.reduce(_.rest(arr), function (prev, next) {
  res.push(next - prev);
  return next;
}, arr[0]);

如何使用_.reduce

 (function () { var nums = [0,4,3,9,10]; var diffs = _.reduce(nums, function(result, value, index, collection) { if (index === 0) return result; result[index] = value - collection[index - 1]; return result; }, []).slice(1); $('.output').text(JSON.stringify(diffs)); }()); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.min.js"></script> <div class=output></div> 

也許是更慣用的lodash解決方案:

_.zipWith(arr.slice(1), arr.slice(0, -1), _.subtract)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM