我们在这里找到了一些示例,这些示例返回带有条件的图元的ES6原始数组的映射,但是对于对象数组,我们需要相同的映射。
源数组具有topic.id,topic.name和topic.parent_id:
topics: [
{id: 1, name: 'test_1', parent_id 0},
{id: 2, name: 'test_2', parent_id 0},
{id: 1, name: 'test_child_1', parent_id 1}
]
我们需要返回一个对象数组,其中topic_id现在是键“值”,而topic.name现在是键“标签”,如果topic.parent_id>,则该值的开头有2个不间断空格。 0.所以对于上面的数据,我们想回来:
[
{value: 1, label: 'test_1'},
{value: 2, label: 'test_2'},
{value: 3, label: ' test_child_1'}
]
我们已经尝试了很多IF的三进制(例如下面的IF),但是似乎并不能确定一个可行的语法。
let test ="topics.map(topic => (
{
label: topic.parent_id > 0 : ' ' + topic.name ? topic.name,
value: topic.id,
}
))"
任何帮助表示赞赏!
最佳答案
这是简单的解决方案,您可以执行以下操作
var labelValues =topics.map((topic)=> ({
label: topic.parent_id > 0 ? ' ' + topic.name : topic.name,
value: topic.id
}));
关于javascript - JS条件ES6 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52021591/