let arr = [{spuId: 647, name: 'aa'}, {spuId: 648, name: 'bb'}] let b = { spuId: 647} 在js中, 我需要从arr中剔除掉 b中spuId相等的那一项
时间: 2024-09-27 19:06:34 浏览: 42
在JavaScript中,你可以使用`filter()`方法结合`Object.keys()`和`indexOf()`来实现这个需求。首先,你需要找出`b`的对象在`arr`中的索引,然后用`Array.prototype.splice()`方法来删除对应项。这里是一个示例:
```javascript
let arr = [{ spuId: 647, name: 'aa' }, { spuId: 648, name: 'bb' }];
let b = { spuId: 647 };
// 获取b在arr中的索引
let index = arr.findIndex(obj => obj.spuId === b.spuId);
// 如果找到了匹配项
if (index !== -1) {
// 删除匹配项
arr.splice(index, 1);
}
console.log(arr); // 结果将是 [{ spuId: 648, name: 'bb' }]
```
如果你确定`b`的对象一定存在并且只有一个,那么`findIndex()`就能确保找到唯一的一项。如果没有找到,`findIndex()`会返回 `-1`。
相关问题
let arr = {name:''} 如何判断 arr 有name属性,并且name属性还有值
可以使用 "in" 运算符来判断对象是否具有某个属性,例如:
```
if ("name" in arr) {
// arr 有name属性
}
```
如果要判断 name 属性有没有值,可以这样写:
```
if ("name" in arr && arr.name) {
// arr 有name属性并且name属性还有值
}
```
也可以用 `arr.hasOwnProperty("name")` 进行判断,它只会检查对象自身是否有这个属性,不会检查它继承了哪些属性。
```
if(arr.hasOwnProperty("name") && arr.name)
```
还有一种写法是使用 typeof 判断
```
if(typeof arr.name !== 'undefined' && arr.name !== null)
```
这种方法可以判断对象中是否有name属性且还有值。
let arr={0: 3, 1: 3} 把arr变成【3】
可以使用 Object.values() 方法将对象的值转为数组,然后获取数组的第一个元素即可得到结果。具体代码如下:
```
let arr = {0: 3, 1: 3};
arr = Object.values(arr);
// arr 现在为 [3, 3]
arr = arr.slice(0, 1);
// arr 现在为 [3]
```
注意,由于对象的属性名不是连续的数字,因此它不能被直接转换为数组。我们需要使用 Object.values() 方法来获取对象的值,然后再对数组进行操作。
阅读全文
相关推荐
















