两个数组如何把数组不同的元素加入另外一个数组

发布于 09-12 02:15 字数 268 浏览 16 评论 0

var kk = [50,2,33,47,89,98]
var dd = [{y:2,w:3},{y:47,w:87},{y:98,w:87}]
for (var qq in kk) {
    for (var tt in dd) {
        
}
有两个数组我想把第二个数组组装成
[
{y:2,w:3},{y:47,w:87},{y:98,w:87},

 {y:50,w:""},{y:33,w:""},{y:89,w:""}    
]
这种的 试了好多次都不行。。求救

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

你列表最软的妹2022-09-19 02:15:46

你这规律很奇怪啊。
image.png

var kk = [50,2,33,47,89,98]
var dd = [{y:2,w:3},{y:47,w:87},{y:98,w:87}]
for(var i = 0; i < kk.length; i+=2){
    var y = kk[i]
    var w = kk[i+1]
    var item = dd[i>>1]
    console.log(y, w, item)
    Object.keys(item).forEach(v=>{
        if(y == item[v]) y = ''
        if(w == item[v]) w = ''
    })
    dd.push({y,w})
}
dd
一身骄傲2022-09-19 02:15:46

首先找到dd中已有的y,然后循环kk判断元素是否存在dd中,不存在就push进去,并且把新的y保存起来,避免重复。

var kk = [50,2,33,47,89,98]
var dd = [{y:2,w:3},{y:47,w:87},{y:98,w:87}]
var temp = {};
dd.map(function(item) {
    temp[item.y] = 1;
});
kk.map(function(item){
    if (!temp[item]) {
        dd.push({y: item, w: ''});
        temp[item] = 1;
     }
});
北笙凉宸2022-09-19 02:15:46
var kk = [50,2,33,47,89,98]
var dd = [{y:2,w:3},{y:47,w:87},{y:98,w:87}]
let newArr = JSON.parse(JSON.stringify(dd));
const newKk = kk.map(item => {
    return {
        y: item,
        w: ''
    };
});
newKk.forEach(item => {
    if (!dd.some((every) => item.y === every.y)) newArr.push(item)
});

jsfiddle的demo链接:https://jsfiddle.net/liangxh/...

幽蝶幻影2022-09-19 02:15:46
var s = new Set(dd.map(({y})=>y))
dd.concat(kk.filter(k => !s.has(k)).map(y => ({y, w: ''})))

image.png

酒解孤独2022-09-19 02:15:46
        let h = dd
        kk.map(item => {
            if (dd.map(item1 => item1.y).indexOf(item) === -1)
                h.push({y: item, w: ""})
        })

这很简单鸭 遍历kk 把dd中没有的kk元素 放到dd里就行啦

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文