我想从数组中删除位置。当我尝试#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int main()
{
string light1 = "off";
string light2 = "off";
string electricity = "off";
bool power(false);
bool pressure(true);
cout << ("The Electricity is " + electricity +", Light #1 is "
+ light1 +" and Light #2 is "+ light2 +".") << endl;
power = pressure = true;
if ((power) && (pressure))
{
light1 = "on";
light2 = "on";
electricity = "on";
}
cout << ("The Electricity is " + electricity +", Light #1 is "
+ light1 +" and Light #2 is "+ light2 +".") << endl;
}
时没有删除。但是当我尝试delete $products.position;
它只是从第一个删除。
答案 0 :(得分:5)
循环遍历数组的元素并从每个元素中删除position
。
for (var i = 0; i < $products.length; i++) {
delete $products[i].position;
}
答案 1 :(得分:1)
我会使用map
代替forEach
。
const products = [{ foo: 'bar', position: 1 }, { foo: 'baz', position: 2}, { doo: 'daz' }];
console.log(products.map(obj => delete obj.position && obj));
.as-console-wrapper { max-height: 100% !important; top: 0; }
虽然可能性较差,但对我来说更有意义,因为你想生成一个新的数组,为每个元素应用delete
函数。
答案 2 :(得分:0)
试试这个
$products.forEach(function(item){
delete item.position;
});
答案 3 :(得分:0)
有多种方法可以从数组中删除特定位置的JSON对象,但我建议使用splice方法,因为它比其他方法更快。
products.splice(position, 1);
第一个参数表示要开始的位置,第二个参数表示要拼接的对象数。由于您只想删除一个对象,因此应该写入1(一)。此处的位置从0(零)开始,因此相应地插入位置。
答案 4 :(得分:0)
这个对我有用。
for(var i in $products){
delete $products[i].position;
}