我正在尝试编写一个JavaScript函数来显示多个下拉列表。如您所见。 State.data包含整个api数据。这里this.state.data是一个对象数组。
我想按属性值对返回的累加器进行排序。值和标签基本相同
getOptions(propertyName) {
return this.state.data.reduce((accum, elem, i) => {
const accumulator = [...accum];
if(!accumulator.some((e) => { return e.value === elem[propertyName]; })) {
if(elem[propertyName] !== '' && elem[propertyName] !== '-') {
accumulator.push({
id: i,
value: elem[propertyName],
label: elem[propertyName]
});
}
}
return accumulator;
}, []);
}
我只想使用纯JS。我可以使用lodash,但不能使用Jquery。我对使用纯香草JS更感兴趣
答案 0 :(得分:0)
如果要使用比较器函数使用特定属性进行比较:
data.sort(function (a,b) {
return a.propertyName > b.propertyName ? 1 : b.propertyName > a.propertyName ? -1 : 0;
})
通常,如果要按字母顺序对字符串(不是对象)数组进行排序,只需对数据调用sort()
。如果需要降序调用reverse()
。