【发布时间】:2015-06-20 17:21:36
【问题描述】:
我正在尝试获取一个数组(“selectedWorkshops”),并将其中的对象移动到“registeredWorkshops”。然后,我还想从“selectedWorkshops”和另一个简称为“workshops”的数组中删除这些对象。
在此处查看我的代码笔:http://codepen.io/trueScript/pen/wBVqNN
数组:
var workshops = [
{
name: 'apples',
WorkshopId: '19'
},
{
name: 'oranges',
WorkshopId: '3b'
},
{
name: 'pears',
WorkshopId: 'x6'
},
{
name: 'pineapples',
WorkshopId: '55'
},
{
name: 'watermelons',
WorkshopId: '8v'
}
];
var selectedWorkshops = [
{
name: 'oranges',
WorkshopId: '3b'
},
{
name: 'watermelons',
WorkshopId: '8v'
},
{
name: 'pears',
WorkshopId: 'x6'
}
];
var registeredWorkshops = [];
应该将车间移动到“注册车间”并将其从“选定车间”和“车间”中删除的功能:
flipWorkshops = function(){
var numberOfWorkshops = selectedWorkshops.length;
var X = 1;
for(var i = 0; i < numberOfWorkshops; i++ ){
registeredWorkshops.push(selectedWorkshops[i]);
for(var j = 0, arrayLength = workshops.length; j < arrayLength; j++) {
var selectedWorkshop = selectedWorkshops[i];
var originalWorkshop = workshops[j];
if(selectedWorkshop == originalWorkshop){
var matchingWorkshop = j;
workshops = workshops.splice(j, 1);
selectedWorkshops = selectedWorkshops.splice(i, 1);
}
}
}
};
flipWorkshops();
为什么对象没有像应有的那样从“workshop”和“selectedWorkshops”数组中正确拼接出来?我做错了什么?
【问题讨论】:
-
"splice() 方法在数组中添加/删除项目,并返回删除的项目。" w3schools.com/jsref/jsref_splice.asp 所以,基本上,您将
workshops简化为单个对象,即已删除的数组元素。
标签: javascript arrays object for-loop splice