如何将数据从对象传递到javascript中的新数组?

Posted

技术标签:

【中文标题】如何将数据从对象传递到javascript中的新数组?【英文标题】:How to pass data from object into new array in javascript? 【发布时间】:2022-01-15 19:36:21 【问题描述】:

我只想发送数据对象 var arrImg 中包含的字段之一。我要推送的第一件事是 var arrImg 的图像字段,其中检查为 true 的条件是 crudData:'image':[] 上的新数组图像。然后第二个我想将 var arrImg 的字段名称与检查为 true 的条件推送到 crudData:'name':[] 上的新数组名称中。选中的值首先设置为 false,但当单击输入复选框时将更改为 true。有人理解我要问的情况吗?我是 javascript 新手。谢谢。

这是我的小提琴https://jsfiddle.net/Annisa_Lianda30/d0ber5Lu/24/

这是我的代码:

<script>
export default 
    data() 
        return
            crudData:
                'id': null,
                'name': [],
                'image': [],
                'arrImage': [],
            ,
        
    ,

    imageUpload(e, maxItem)                    
            let input = this.$refs.uploadImage
            let file = input.files
            if(file.length > (maxItem - this.crudData.arrImage.length))
                $('#uploadMultiFile').val('')
                alert('You can only upload max '+maxItem+' items')
             else 
                for(let i = 0; i < file.length; i++)
                    var valueArr = this.crudData.arrImage.map(function(item) return item.fileName )
                    var isDuplicate = valueArr.some(function(item, idx) 
                        return item == file[i].name 
                    )
                    if (isDuplicate) 
                        alert("You've already uploaded this file")
                        continue
                    else
                        var arrImg = 
                            blob: URL.createObjectURL(file[i]),
                            image: file[i],
                            fileName: file[i].name,
                            checked: false,
                            name : null
                        
                        this.crudData.arrImage.push(arrImg)
                        console.log(this.crudData.arrImage)
                    
                
            
        ,
        uploadImage(e)
            this.$refs.uploadImage.click()
        ,
        removeImage(key)
            this.crudData.arrImage.splice(key, 1)
        , 


这是我从 crudData.arrImage 得到的输出: Output Javascript

【问题讨论】:

【参考方案1】:

欢迎来到 SO。希望这段代码 sn-p 可以帮助指导您找到所需的内容。

let checkedImages = this.crudData.arrImage.filter(img => img.checked)
let imageFiles = checkedImages.map(img => img.image)
let names = checkedImages.map(img => img.fileName)
console.log( imageFiles,names )

【讨论】:

你好,你能给我一个更具体的线索吗?因为当我添加这个时,当我查看控制台日志时,我只会得到 Array(0)length: 0[[Prototype]]: Array(0)。 在函数 imageUploaded(e, maxItem)... 的底部,放置此代码,然后运行 ​​console.log( imageFiles,names )。 你能检查我在这个小提琴jsfiddle.net/Annisa_Lianda30/d0ber5Lu/3中的代码吗? 很高兴。现在看看。 我的意思是我想从 arrImg 对象推送 2 个数据。首先是图像字段并检查条件为真(单击复选框后条件为真),该条件位于要推送到 crudData'image':[] 的 arrImg var 中。然后第二个字段名称并检查条件为真(单击复选框后条件为真),它在 var arrImg 中被推送到 crudData:'name':[]

以上是关于如何将数据从对象传递到javascript中的新数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Blob 对象从 javascript 传递到 Android?

如何使用 Emscripten 将对象从 Javascript 传递到 C++

如何将变量和数据从 PHP 传递到 JavaScript?

如何将变量和数据从 PHP 传递到 JavaScript?

如何将 utf-8 数据从 Django 传递到 javascript

如何将 MB 的数据从 PHP 传递到 Javascript [关闭]