JsValue
配列に対してチャンク メソッドを作成しようとしています。変更された配列を JavaScript に戻す方法はありますか?
それが私がやろうとしていることです:
#[wasm_bindgen]
pub fn chunk(array: Box<[JsValue]>, size: usize) -> Box<[Box<[JsValue]>]> {
array
.chunks(size)
.map(|el| {
el.iter()
.map(|el| el.to_owned())
.collect::<Box<[JsValue]>>()
})
.collect()
}
コンパイル中にこれを取得します:
the trait `wasm_bindgen::convert::traits::IntoWasmAbi` is not
implemented for
`std::boxed::Box<[std::boxed::Box<[wasm_bindgen::JsValue]>]>`
js_sys も試してみましたが、JS API ラッパーにすぎないため、純粋な JS 実装よりもさらに時間がかかるようです。
#[wasm_bindgen]
pub fn chunk(array: Box<[JsValue]>, size: usize) -> Array {
let root = Array::new();
for chunk in array.chunks(size) {
let arr = Array::new();
for ch in chunk {
arr.push(ch);
}
root.push(&arr);
}
root
}