[英]How can I add new key with id in array javascript?
I try like this : 我这样尝试:
<script type="text/javascript">
var club = [
{id:123, name:'chelsea'},
{id:456, name:'mu'},
{id:789, name:'liverpool'}
];
var newClub = club.map(function(element){
element.original = true;
element.kw = false;
return element;
});
console.log(newClub);
</script>
It works. 有用。 But I want the key original and kw with id like this : 但是我想要像这样的键原始和kw与id:
var club = [
{id:123, name:'chelsea', original123:true, kw123:false},
{id:456, name:'mu', original456:true, kw456:false},
{id:789, name:'liverpool', original789:true, kw789:false}
];
How can I do it? 我该怎么做?
You should use dynamic properties: 您应该使用动态属性:
var newClub = club.map(function(element) {
element['original' + element.id] = true;
element['kw' + element.id] = false;
return element;
});
For dynamic properties , you need to use bracket notation. 对于动态属性 ,您需要使用括号符号。 For reference, Property accessors . 供参考, 属性访问器 。 Try following 尝试跟随
var club = [{id: 123,name: 'chelsea'},{id: 456,name: 'mu'},{id: 789,name: 'liverpool'}]; var newClub = club.map(function(element) { element['original' + element.id] = true; element['kw' + element.id] = false; return element; }); console.log(newClub);
You can also simplify your code like following 您还可以像下面这样简化代码
var club = [{id: 123,name: 'chelsea'},{id: 456,name: 'mu'},{id: 789,name: 'liverpool'}]; let newClub = club.map(o => ({...o, [`original${o.id}`] : true, [`kw${o.id}`] : false})); console.log(newClub);
You could use template literals to create dynamic property names. 您可以使用模板文字来创建动态属性名称。
var club = [ {id:123, name:'chelsea'}, {id:456, name:'mu'}, {id:789, name:'liverpool'} ]; var result = club.map(({id,...rest}) => ({ ...rest, [`original${id}`]: true, [`kw${id}`]: false })) console.log(result)
You can use .map()
and Object.assign()
methods: 您可以使用.map()
和Object.assign()
方法:
var data = [ {id:123, name:'chelsea'}, {id:456, name:'mu'}, {id:789, name:'liverpool'} ]; var result = data.map(o => Object.assign({}, o, { ['original' + o.id]: true, ['kw' + o.id]: false })); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.