当前,我已成功返回数据库的值并将其放在HTML的<select> & <option>
标记内。我无法在SQL查询中使用DISTINCT
,因为后端的代码位于项目的API中。
所以我尝试使用javascript仅返回<select>
标签的不同值。
我找到并尝试了这段代码,但是<select>
标签为空。
$scope.test_ = [{"id":"1", "name":"alex", "id":"2", "name":"cedie", ,
"id":"3", "name":"alex"}]
var list = $scope.test_.filter((x,i,a) => a.indexOf(x) == i);
没有结果返回此原因。
致谢
答案 0 :(得分:1)
您距离很近,但是有代码
var list = $scope.test_.filter((x,i,a) => a.indexOf(x) == i);
只会查找完全相同的值。现在,数组中的对象实际上具有唯一性,因为它们具有不同的"id"
属性。 (否则,很可能仍然具有不同的对象身份,但这是另一次)
现在一种使它仅针对名称进行测试的方法将是像这样使用.indexOf(x)
而不是.findIndex(y => y.name === x.name)
:
var list = $scope.test_.filter((x,i,a) => a.findIndex(y => y.name === x.name) == i);
我希望代码可以不言自明,但如果不是,请告诉我