为了账号安全,请及时绑定邮箱和手机立即绑定

js对象取值

js对象取值

慕姐4208626 2019-03-14 14:15:19
如图这个数组里面的对象 有可能有多个相同的text 字段 怎么选择 最靠前的一个 对象的text 或者 随机选择一个其中相同的某一个也行只给其中一个加上 s:true 跟 pp:pp
查看完整描述

3 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

更新

我理解错题意了,我以为你是要对所有重复出现的字符都做 第一次出现的元素添加属性。


如果是要给定字符并找出的话,@joy钰 的答案就可以了。


原答案

// 将数组映射成键值对,{'字符': 出现次数}

let map = wordsArr.reduce((map, word) => [map[word.text] = (map[word.text] || 0) + 1, map], {})

Object.keys(map).forEach(key => {

    // 根据当前键找到第一次出现的位置

    let index = wordsArr.findIndex(word => word.text === key);

    // 随机的话,就 filter 出所有 text 为 key 的元素,然后取个随机数去取对应位置即可。

    // 为该位置上的元素添加属性

    wordsArr[index]['s'] = 'true';

    wordsArr[index]['pp'] = 'pp'

})


查看完整回答
反对 回复 2019-03-20
?
慕容708150

TA贡献1831条经验 获得超4个赞

Array.prototype.getByValue = function(val) {


    for(var i=0; i<this.length; i++) {

        if(this[i].text == val) {

            //push

        }

    }

};


查看完整回答
反对 回复 2019-03-20
  • 3 回答
  • 0 关注
  • 678 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信