我正在处理列表。您可以在其中添加和删除元素,并指定每个添加元素的数量。
我将所有元素都包含在我的数据中 示例:
[
{
"rowID": "21",
"rowAnzahl": 1,
"elementID": "127",
"elementName": "Element 4"
},
{
"rowID": "22",
"rowAnzahl": 1,
"elementID": "109",
"elementName": "Element 3"
},
{
"rowID": "",
"rowAnzahl": "",
"elementID": "106",
"elementName": "Element 1"
},
{
"rowID": "",
"rowAnzahl": "",
"elementID": "112",
"elementName": "Element 2"
}
]
然后我添加了两个计算的属性:
elements: function() {
return this.testData.filter(function(e) {
return e.rowID
})
},
unusedElements: function() {
return this.testData.filter(function(e) {
return !e.rowID
})
},
然后我有以下方法:
methods: {
addElement: function(index) {
var item = this.testData[index];
item.rowID = 'new' + this.rowCount++;
item.rowAnzahl = 1;
},
removeElement: function(index) {
var item = this.testData[index];
item.rowID = '';
item.rowAnzahl = '';
}
},
但现在我的问题是
对于我未使用的元素和元素的属性,索引从0开始。 但是因为我需要用于添加或删除元素的索引号,所以它不起作用。 是否可以通过我的elementID过滤方法? 还是可以将elementID设置为索引号?
谢谢!
答案 0 :(得分:0)
您可以使用数组的findIndex函数搜索索引:
var elements = [...]; // Your list
function indexOfElement(elementID) {
return elements.findIndex((entry) => entry.elementID == elementID);
}
编辑:也许我不正确理解您的问题。我还是要把这个留在这里
答案 1 :(得分:0)
现在,我找到了解决方案。 我更改了方法并将其连接到我的计算属性而不是数据。
methods: {
addElement: function(index) {
var item = this.unusedElements[index];
item.rowID = 'new' + this.rowCount++;
item.rowAnzahl = 1;
},
removeElement: function(index) {
var item = this.elements[index];
item.rowID = '';
item.rowAnzahl = '';
}
},
现在,简单的Index解决方案可以正常工作了。 有时它的帮助只是思考了一些不同的内容; D