判断字符串是否存在于数组中,如果存在则删除该字符串所在的数组项
如图所示,点击珍珠颜色、配件材质、尺寸后会生成如下图的数组格式,现在我需要点击已选中的项判断是否存在数组中,如果存在则删除该项,否则则添加该项;
以下是我添加的方法:
for (var i = 0; i < $scope.attrList.length; i++) {
if ($scope.attrList[i].id === id) {
$scope.tempArray[i].push(name);
$scope.group = doExchange($scope.tempArray);
}
}
其中$scope.attrList是从接口拿到的属性数据,渲染后就是第一张图的样子,doExchange就是把原本[['白色'],['黄金'],['9#']]这样的格式转换成["白色,黄金,9#"]这样的格式
**代码链接:
链接: https://pan.baidu.com/s/1kVzfRdP 密码: jneb**
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可以通过js数组的
indexOf
方法拿到选中项生成的字符串是否已经在当前数组中(>-1则存在,==-1则不存在),然后通过splice
方法删除这项,或是将新生成的字符串push
入数组。补充:
你这里逻辑并不对。是你第二个图里面的数组为A的话,
我看了你网盘的代码,我有以下问题不是特别明白:
md-checkbox
中没有使用ng-model
绑定数据模型,这是为什么呢?如果绑定的话,选中数据模型和视图模型的同步逻辑并不需要你通过ng-click
来自己实现,你只需要提供类似doExchange
这样的数据格式化方法即可ng-value
的使用方法是错误的,不应该使用ng-value
指令来改变$model
的值,而应该使用ng-true-value
和ng-false-value
以上
有点不怎么明白你的需求,感觉就像是选择手机属性:白色、玫瑰金、9#,也该是单独的一组。