猿问

js对象取值

如图
这个数组里面的对象 有可能有多个相同的text 字段 怎么选择 最靠前的一个 对象的text 或者 随机选择一个其中相同的某一个也行

只给其中一个加上 s:true 跟 pp:pp


慕姐4208626
浏览 679回答 3
3回答

温温酱

更新我理解错题意了,我以为你是要对所有重复出现的字符都做 第一次出现的元素添加属性。如果是要给定字符并找出的话,@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'})

慕容708150

Array.prototype.getByValue = function(val) {&nbsp; &nbsp; for(var i=0; i<this.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if(this[i].text == val) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //push&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }};
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答