Как я могу умножить на каждый массив значений объекта с константой? - PullRequest
0 голосов
/ 23 декабря 2018

Как мне умножить каждый элемент массива значений объекта на постоянную?

Вход

[{"key":usd, "value":20 }, {"key":aed, "value":50 },{"inr":usd, "value":30 },{"key":usd, "value":40 }]

Выход

[{"key":usd, "value":40 }, {"key":aed, "value":100 },{"inr":usd, "value":60 },{"key":usd, "value":80 }]

Ответы [ 5 ]

0 голосов
/ 23 декабря 2018

без изменения исходного массива.не стесняйтесь комментировать, если вы не понимаете.

let someArray = [{"key":"usd", "value":20 }, {"key":"aed", "value":50 },{"inr":"usd", "value":30 },{"key":"usd", "value":40 }]

let result = someArray.map(data=>{
return {...data, value: data.value*2}
})

console.log(result);
0 голосов
/ 23 декабря 2018
const arr = [{"key":"usd", "value":20 }, {"key":"aed", "value":50 },{"inr":"usd", "value":30 },{"key":"usd", "value":40 }];
arr.map(function(value,key){
    arr[key].value *=2;
});
console.log(arr);

Выход

[{"key":"usd", "value":40 }, {"key":"aed", "value":100 },{"inr":"usd", "value":60 },{"key":"usd", "value":80 }];
0 голосов
/ 23 декабря 2018

Вы можете использовать эту функцию примера для этого типа ввода, в противном случае вам нужно изменить эту функцию, передать свой объект в качестве ввода:

valueChanger(input){
    var tx = []
    for(var x = 0;x < Object.keys(input).length ; x++){
        var obj = {}
        obj['key'] = input[x]['key'] // do anything with key if you want in here
        obj['value'] = input[x]['value']*2 
        tx.push(obj)
    }
    return tx
}
0 голосов
/ 23 декабря 2018

Вы можете просто использовать Array.prototype.map() и Синтаксис стрелки ES6 следующим образом:

const arr = [{
  "key": "usd",
  "value": 20
}, {
  "key": "aed",
  "value": 50
}, {
  "inr": "usd",
  "value": 30
}, {
  "key": "usd",
  "value": 40
}];
const value = 2;
const result = arr.map(e => {
  e.value *= value;
  return e;
});
console.log(result);

И если вы хотите, вы можете просто вернуть удвоенные значения, как это, возвращая значение doubles e.value:

const arr = [{
  "key": "usd",
  "value": 20
}, {
  "key": "aed",
  "value": 50
}, {
  "inr": "usd",
  "value": 30
}, {
  "key": "usd",
  "value": 40
}];
const value = 2;
const result = arr.map(e => e.value *= value);
console.log(result);
0 голосов
/ 23 декабря 2018
const arr = [{"key":"usd", "value":20 }, {"key":"aed", "value":50 },{"inr":"usd", "value":30 },{"key":"usd", "value":40 }];

const modifiedArr = arr.map(item => {
    var modifiedItem = Object.assign({}, item);
    modifiedItem.value *= 2;

    return modifiedItem;
});

console.log(arr);
console.log(modifiedArr);

Редактировать: для изменения использовался измененный элемент, на что указывает @ UncleDave

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...