0

这是我的 wasm-bindgen 代码:

#[wasm_bindgen]
pub fn iteration(js_array: &JsValue) -> Vec<i32> {
let elements: Vec<Duck> = js_array.into_serde().unwrap();
elements.iter().fold(vec![], |mut acc, duck| {
    let id = duck.id.parse::<i32>().unwrap_or(0);
    if id % 42 == 0 {
        acc.push(id)
    }
    acc
})
}

这是相同的 JS 代码:

const iterator = (arr) => arr.reduce((acc, _, index) => {
   return index % 42 === 0 ? [...acc, index] : acc
}, [])

但是 wasm-bindgen 版本慢了 2 倍。我明白为什么 - 因为我使用serde.

是否有更有效的方法来遍历对象数组wasm-bindgen

4

0 回答 0