只能访问已修改数组的第一个元素

时间:2016-02-17 04:29:47

标签: javascript arrays regex

我的任务是比较数组中电话号码的值,并返回数字总和为最高数字的元素。为了做到这一点,我决定更换电话号码中的“ - ”,以便元素只包含数字,然后parseInt字符串来比较数字。但是,我坚持第一部分。

当我返回数组时,只返回修改后的第一个元素。我怎么能重写这个,以便返回数组的所有元素?

function largest_phone_number(arr) {


for (var i=0; i<=arr.length; i++) {
        var re = /-/g;
        arr = arr[i].replace(re, "");
        return arr;
        }
    } //largest_phone_number(['123-456-7777', '963-481-7945', '111-222-3333']);

1 个答案:

答案 0 :(得分:0)

当您使用关键字void ofApp::setup(){ ofBackground(0,0,0); grabber.setPixelFormat(OF_PIXELS_RGB); // Start the grabber grabber.setup(640,480); // Get the native android video grabber ofxAndroidVideoGrabber* androidGrabber = (ofxAndroidVideoGrabber*)grabber.getGrabber().get(); // Ensure facing the correct direction androidGrabber->setDeviceID(androidGrabber->getBackCamera()); } void ofApp::update(){ grabber.update(); if(grabber.isFrameNew()){ // Add frame ofPixels nextFrame = grabber.getPixels(); frameQueue.push(nextFrame); } } void ofApp::draw(){ // Calculate aspect ratio of grabber image float grabberAspectRatio = grabber.getWidth() / grabber.getHeight(); // Draw camera image centered in the window ofPushMatrix(); ofSetHexColor(0xFFFFFF); ofSetRectMode(OF_RECTMODE_CENTER); ofTranslate(ofGetWidth() / 2, ofGetHeight() / 2); // Initial check that the next frame should be rendered if ( ! frameQueue.empty() ) { ofPixels nextFrame = frameQueue.front(); grabberImage.setFromPixels(nextFrame); grabberImage.mirror(false, true); grabberImage.update(); // Advance frameQueue.pop(); } if ( grabberImage.isAllocated() ) { if(ofGetWidth() > ofGetHeight()) { grabberImage.draw(0, 0, ofGetHeight() * grabberAspectRatio, ofGetHeight()); } else { grabberImage.draw(0, 0, ofGetWidth(), ofGetWidth() * 1.0/grabberAspectRatio); } } ofPopMatrix(); ofSetRectMode(OF_RECTMODE_CORNER); } 时,当前上下文将停止运行。因此,您的函数将在循环的第一次迭代后停止。

您的情况非常适合使用return功能。我可能会建议您执行以下操作:

Array.map()

这将返回一个没有连字符的新数组。