gpt4 book ai didi

javascript - object.splice 没有从数组中删除数据

转载 作者:行者123 更新时间:2023-12-01 00:00:52 24 4
gpt4 key购买 nike

我尝试使用 Axios 调用获取一些数据,并通过使用 object.splice(index,1) 删除匹配元素来修改数据元素

但在最终结果中,我得到了拼接不起作用的所有元素,

我猜这可能与“异步和等待”问题有关,但不确定如何解决它。

getBeltDevicesList({ commit, dispatch,rootState}) {
commit('common/SET_SCROLL_OVER_LOCK_STATE', false, {root: true });
commit('common/SET_PENDING_STATE', true, { root: true});
commit('SET_SELECTED_DEVICE_ID', null);
const queryParams = {
skip: 0,
take: rootState.common.itemsOnPage,
...rootState.common.searchOptions,
};
return DataApiService
.getDataElements(queryParams)
.then(data => {
data.forEach((dataElements, index, object) => {
//alert(JSON.stringify(data))
const { vId,typeId} = dataElements;
if (vId !== null || typeId == 2) {
// alert(typeId);//splice is not removing the elements
object.splice(index, 1);
}
});
commit('SET_LIST', data);
commit('common/SET_PENDING_STATE', false, {root: true});
getDataElementsAssigning(data);
setFormattedBootstrapDate(data);
const selecteddataElement = rootState.common.pageMode === 'table' || !data.length ? null : data[0];
dispatch('selectdataElement', selecteddataElement);


});
}

最佳答案

拼接可以工作,但是拼接当前元素将导致在 forEach() 循环中跳过下一个元素。相反,您应该使用 filter() 从列表中删除元素。

data = data.filter(({vId,typeId}) => vId === null && typeId != 2);

关于javascript - object.splice 没有从数组中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60750204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com