亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript 相當于 R 的 dataVector[indicesVector]?

Javascript 相當于 R 的 dataVector[indicesVector]?

DIEA 2021-09-04 17:16:50
我有一個 Javascript 數組,我想根據另一個數組中的索引進行排序。在 RI 中可以使用索引向量重新排列向量,但試圖找到一個 Javascript 等價物只是帶來了排序結果,這似乎不是我想要的(我不是在比較對象——我已經有我想要的訂單)。myArray=[obj1, obj2, obj3];myIndices = [1,0,2];期望的輸出:[obj2, obj1, obj3]
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

在我看到您的編輯之前,我實際上并沒有真正理解您的問題。作為一個mea-culpa,這里是一個基于向量的排序方法:


function vectorSort(arr, vector) {

    const matrix = new WeakMap()


    vector.forEach((indice, index) => matrix.set(arr[index], indice))


    arr.sort((a, b) => matrix.get(a) - matrix.get(b))


    return arr

}

帶有指向工作小提琴的鏈接


查看完整回答
反對 回復 2021-09-04
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

您可以使用一個簡單的reduce函數。


orderVector = (vector, indices) => vector.reduce((a,v,i) => (a[indices[i]] = v, a), []);

let c = [1,"first",3,4,5],

c_ind = [1,0,3,2,4],


orderVector = (vector, indices) => vector.reduce((a,v,i) => (a[indices[i]] = v, a), []);


result = orderVector(c, c_ind);


console.log(result);


查看完整回答
反對 回復 2021-09-04
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號