1function knapsack(items, capacity) {
2 const n = items.length;
3 const dp = Array(n + 1).fill().map(() => Array(capacity + 1).fill(0));
4 for (let i = 1; i <= n; i++) {
5 for (let w = 1; w <= capacity; w++) {
6 if (items[i-1].weight > w)
7 dp[i][w] = dp[i-1][w];
8 else
9 dp[i][w] = Math.max(dp[i-1][w],
10 dp[i-1][w - items[i-1].weight] + items[i-1].value);
11 }
12 }
13 return dp[n][capacity];
14}