我正在阅读有关Promise的MDN手册,我发现这两种方法与我相似:
它们都接受一个可迭代对象并返回一个包含已完成的Promises的数组。
那么,它们之间有什么区别呢?
我正在使用查询参数,并被介绍到URLSearchParams. 我用它来形成这种要查询的对象,
const x = {
a: 'hello World'
b: 23
c: ''
}
let params = new URLSearchParams(x);
console.log(params.toString()) // a=hello+World&b=23&c=
Run Code Online (Sandbox Code Playgroud)
在这里,我不想拥有那个c=,因为它很丑,而且我的 API 不需要那个。
所以,我想要这个结果a=hello+World&b=23(没有空的查询字符串)但是,我在 mdn 文档上找不到任何东西。
我该怎么做?
这样做不起作用,因为它似乎直接改变了params影响forEach:
const x = {
a: 'hello World',
b: '',
c: ''
};
let params = new URLSearchParams(x);
params.forEach((v, k) => { // never reaches `c`
console.log(k, ' => ', v)
if (v == '')
params.delete(k);
});
console.log(params.toString());Run Code Online (Sandbox Code Playgroud)
当我阅读 MDN 文档时,我得到了以下对象语法,
var o = {
a: 7,
get b() {
return this.a + 1;
},
set c(x) {
this.a = x / 2;
}
};
// ...
Run Code Online (Sandbox Code Playgroud)
从这里。起初我以为,它只适用于get& set。但后来我看到了这个,
// ...
const handler = {
getPrototypeOf(target) {
return monsterPrototype;
}
};
// ...
Run Code Online (Sandbox Code Playgroud)
从这里。当我使用自定义函数进行测试时,它起作用了。这里,
let obj = {
_sum: 0,
sum(a, b) {
return this._sum += (a + b);
}
}
console.log(obj.sum(2, 3)); // int 5
console.log(obj.sum(7, 3)); // int 15
console.log(obj.sum(25, 75)); …Run Code Online (Sandbox Code Playgroud) 我真正的问题是:我data.js在这个文件中有文件我创建了一个像这样的静态数组:
const products =
[
{
_id:1,
name: 'Slim Shirt',
category:'Shirt',
image:'/images/d1.jpg',
price: 60,
rating: 4.5,
numReviews:10
},
{
_id:2,
name: 'First Shirt',
category:'Shirt',
image:'/images/d1.jpg',
price: 50,
rating: 4.5,
numReviews:10
},
{
_id:3,
name: 'Best Pant',
category:'Shirt',
image:'/images/d1.jpg',
price: 60,
rating: 4,
numReviews:5
},
{
_id:4,
name: 'Slim Shirt',
category:'Shirt',
image:'/images/d1.jpg',
price: 60,
rating: 4.2,
numReviews:7
},
{
_id:5,
name: 'Slim Shirt',
category:'Shirt',
image:'/images/d1.jpg',
price: 60,
rating: 4.5,
numReviews:10
},
{
_id:6,
name: 'Slim Pant',
category:'Shirt',
image:'/images/d1.jpg',
price: …Run Code Online (Sandbox Code Playgroud)