返回数组内的不同值以将其放入html

时间:2019-01-09 00:41:25

标签: javascript html

当前,我已成功返回数据库的值并将其放在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);

没有结果返回此原因。

致谢

1 个答案:

答案 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);

我希望代码可以不言自明,但如果不是,请告诉我