Es6-如何更改obj道具名称而不循环?

时间:2017-04-24 03:48:10

标签: javascript es6-class

在es6中,我有一个类似

的数组
[{id:0,name:"a"},{id:1,name:"b"}]

我想更改其道具名称而不需要映射或循环

 [{value:0,label:"a"},{value:1,label:"b"}]

我可以使用别名吗?还是其他任何替代品?

首先感谢;

函数示例中的

别名: function(id:label){ ...在此函数标签中为id }

2 个答案:

答案 0 :(得分:0)

您可以使用对象解构,Array.prototype.shift()

let arr = [{id:0,name:"a"},{id:0,name:"b"}];

let res = [];

([{id:res[res.length], name:res[res.length]}
, {id:res[res.length], name:res[res.length]}] = arr);

arr = [{value:res.shift(), label:res.shift()}
      , {value:res.shift() + 1, label:res.shift()}];

console.log(arr);

答案 1 :(得分:0)

如果条目数是可变的,您可以使用代理

value

如果var newThing = new Proxy(thing, { get: (target, name, receiver) => !isNaN(parseInt(name)) ? ({value:parseInt(name), label:target[name].name}) : target[name] }); 是序数位置(如示例输入/输出所暗示的那样)

<div>
{{sample}}
</div>
<div><button ng-click="name()"></div>
<script>
function name(){
alert("text");
}
</script>