【发布时间】:2021-08-01 18:02:32
【问题描述】:
https://stackoverflow.com/a/58831844/6719857
var data = [{
"name": "Tiger Nixon",
"position": "System Architect",
"salary": "$3,120"
}, {
"name": "Black Winters",
"position": "Project Engineer",
"salary": "$1,300"
}, {
"name": "Black Winters",
"position": "Project Engineer",
"salary": "$1,300"
}].map((o,i,arr)=>{
o.color = arr.filter(({name})=>name===o.name).length>1 ?'orange':'red';
return o;
});
我对以下部分特别感兴趣
arr.filter(({name})=>name===o.name).length>1 ?'orange':'red';
我想实现不使用箭头函数,不编译。
因为我需要支持像 IE11 这样的旧版浏览器。
有人帮忙吗?
【问题讨论】:
-
你查看过Array.map的MDN文档吗?有函数表达式的使用示例。
-
function ( {name} ) { return name === o.name } )。{name}与箭头函数无关,它解构作为过滤函数的第一个参数传入的对象并仅提取name -
与其手动更改代码以不使用箭头函数或解构,我仍然建议使用像 Babel 这样的转译器在部署步骤中转换代码。
-
@t.niese 我认为 OP 的意思是“不编译”,即“不编译”
标签: javascript