मैं मूल रूप से ऐसा करने का एक आसान तरीका ढूंढ रहा हूं:

heights.forEach((height, i) => {
    var p = i > 0 ? i -1  : 0;
    this.breakingPoints.push(height+heights[p])
})

अगर मैं एक सरणी इनपुट करता हूं जो है:

[0,2,5,5]

मैं आउटपुट करना चाहूंगा

[0,2,7,12]
0
Himmators 2 अप्रैल 2018, 16:14

3 जवाब

सबसे बढ़िया उत्तर

आप नई सरणी वापस करने के लिए बंद करने के साथ map() विधि का उपयोग कर सकते हैं।

const arr = [0,2,5,5];
const result = (s => arr.map(e => s += e))(0);
console.log(result)
8
Nenad Vracar 2 अप्रैल 2018, 13:19

आप मूल्यों को कम करने और फैलाने के लिए ऑपरेटर का उपयोग कर सकते हैं:

const input = [0, 2, 5, 5];
const output = input.reduce((acc, val) => [...acc, (acc[acc.length - 1] ? acc[acc.length - 1] : 0) + val],[]);

या

var output = input.reduce(function (acc, val) { return acc.concat([(acc[acc.length - 1] ? acc[acc.length - 1] : 0) + val]); }, []);
0
Maciej Wojsław 2 अप्रैल 2018, 14:33

आप Array.reduce का उपयोग कर सकते हैं तरीका।

let inputArray = [1, 2, 3, 4];
let outputArray = [];
inputArray.reduce(function(accumulator, currentValue, currentIndex) { 
  return outputArray[currentIndex] = accumulator + currentValue; }, 0);
0
Sajjad Hossain 2 अप्रैल 2018, 13:25